Merge branch 'android13-5.15' into android13-5.15-lts

Sync up with android13-5.15 for the following commits:

*   5476e160a6a6 Merge "Merge tag 'android13-5.15.94_r00' into android13-5.15" into android13-5.15
|\
| * 51556245492e Merge tag 'android13-5.15.94_r00' into android13-5.15
* | e5862f1a4060 UPSTREAM: wifi: nl80211: fix puncturing bitmap policy
|/
* f8c9753a1256 UPSTREAM: hwrng: virtio - add an internal buffer
* 1dddc1992eae ANDROID: GKI: Update abi_gki_aarch64_qcom
* 092199e995ef BACKPORT: wifi: nl80211: Allow authentication frames and set keys on NAN interface
* 05164a8564ba UPSTREAM: wifi: cfg80211: Allow action frames to be transmitted with link BSS in MLD
* 6bab8a400278 BACKPORT: wifi: cfg80211: include puncturing bitmap in channel switch events
* e8a4772f4d12 BACKPORT: wifi: nl80211: validate and configure puncturing bitmap
* b099f1eb0b33 UPSTREAM: regmap: Don't warn about cache only mode for devices with no cache
* b3ebd7ca3bd6 ANDROID: dma-buf: system_heap: kmap_local_page instead of kmap_atomic
* 16e9875abd44 ANDROID: GKI: update xiaomi symbol list
* cf18e5eb5ef2 UPSTREAM: ext4: fix another off-by-one fsmap error on 1k block filesystems
* 090c1ebf8df4 UPSTREAM: dm verity: stop using WQ_UNBOUND for verify_wq
* 7f356bba0251 BACKPORT: dm verity: enable WQ_HIGHPRI on verify_wq
* 4017ffbb86e8 UPSTREAM: dm verity: remove WQ_CPU_INTENSIVE flag since using WQ_UNBOUND
* a6c4727f6a53 UPSTREAM: loop: Fix use-after-free issues
* 24c1fcb7878c ANDROID: GKI: Update symbol list for mtk
* 6c60fdbac2c9 UPSTREAM: ext4: block range must be validated before use in ext4_mb_clear_bb()
* 53ce0eef4695 UPSTREAM: ext4: add strict range checks while freeing blocks
* 20389d86cb01 UPSTREAM: ext4: add ext4_sb_block_valid() refactored out of ext4_inode_block_valid()
* 60c24f4d1535 UPSTREAM: ext4: refactor ext4_free_blocks() to pull out ext4_mb_clear_bb()
* 7ba7908a8d52 ANDROID: mm: handle SPF using a copy of the original vma
* 521f3bc70dc8 ANDROID: mm: fix UAF in SPF
* e09118b90b6f ANDROID: GKI: Update symbol list for mtk
* 0659efffd9d3 UPSTREAM: arm64: efi: Make efi_rt_lock a raw_spinlock
* 6b908238a81e UPSTREAM: wifi: cfg80211: Set SSID if it is not already set
* 554a9671671a Revert "Revert "ANDROID: usb: dwc3: gadget: don't cancel the started requests""
* eef9e1295bde UPSTREAM: rtmutex: Ensure that the top waiter is always woken up
* cc0db0b28cfc UPSTREAM: cgroup/cpuset: Don't filter offline CPUs in cpuset_cpus_allowed() for top cpuset tasks
* 3c4f88430679 UPSTREAM: ext4: refuse to create ea block when umounted
* 0473082f7ad7 UPSTREAM: ext4: optimize ea_inode block expansion
* bf0b8e8181b0 UPSTREAM: ext4: allocate extended attribute value in vmalloc area
* 79bd2581b8cd ANDROID: ABI: Update the GKI symbol list and ABI XML
* cfe5bd7f0163 ANDROID: abi_gki_aarch64_qcom: Update symbol list
* f3091267aca0 ANDROID: GKI: update xiaomi symbol list
* fb1db47637a3 UPSTREAM: Partially revert "perf/arm-cmn: Optimise DTC counter accesses"
* 1f12217e5de2 UPSTREAM: usb: dwc3: gadget: Ignore End Transfer delay on teardown
* fc41b9e12227 UPSTREAM: elfcore: Add a cprm parameter to elf_core_extra_{phdrs,data_size}
* ee863e210983 UPSTREAM: arm64: mte: Fix double-freeing of the temporary tag storage during coredump
* 7dc85abaac28 UPSTREAM: wifi: nl80211: Add checks for nla_nest_start() in nl80211_send_iface()
* 8b1316dd5b16 UPSTREAM: mm/page_exit: fix kernel doc warning in page_ext_put()
* 37fbaa232deb UPSTREAM: f2fs: fix gc mode when gc_urgent_high_remaining is 1
* ad8cc978ccc1 BACKPORT: mm: multi-gen LRU: move lru_gen_add_mm() out of IRQ-off region
* 73d24f728f3f UPSTREAM: KVM: arm64: Use correct accessor to parse stage-1 PTEs
* 2f6641fde7e3 UPSTREAM: wifi: fix multi-link element subelement iteration
* 0cc04953f0c0 UPSTREAM: perf/arm-cmn: Add more bits to child node address offset field
* a481cc4587ce UPSTREAM: perf/arm-cmn: Update watchpoint format
* 668c43092bbd UPSTREAM: perf/arm-cmn: Hide XP PUB events for CMN-600
* 5761541a4eb5 BACKPORT: wifi: cfg80211: move puncturing bitmap validation from mac80211
* 267de69e07c3 UPSTREAM: wifi: nl80211: add MLO_LINK_ID to CMD_STOP_AP event
* 83e77c318322 BACKPORT: cfg80211: Update Transition Disable policy during port authorization
* f4559cb66624 ANDROID: ABI: Update db845c symbol list on ufshcd
* bef41f506fe2 ANDROID: usb: gadget: f_accessory: update to usb_gstrings_attach
* 0fd1c2a78d14 UPSTREAM: usb: gadget: composite: Draw 100mA current if not configured
* a223191ed9f6 UPSTREAM: usb: dwc3: gadget: Change condition for processing suspend event
* 91c677412ca9 UPSTREAM: net/sched: tcindex: update imperfect hash filters respecting rcu
* 6ca9fd3a0ceb BACKPORT: FROMGIT: scsi: ufs: core: Add hibernation callbacks
* 35d26a773653 ANDROID: ABI: Update unisoc thermal symbol list
* 683fe954dc18 ANDROID: thermal: Add a vendor hook for thermal throttle update
* e013dc708169 ANDROID: GKI: Add symbol list for Lenovo
* 6a7aa0901366 ANDROID: Enable percpu high priority kthreads for erofs
* 40a9ba963b1a UPSTREAM: erofs: fix an error code in z_erofs_init_zip_subsystem()
* 7dc188b2220b BACKPORT: erofs: add per-cpu threads for decompression as an option
* 4fd62a87f5da ANDROID: ABI: Update oplus symbol list
* 05b5ff11ad98 ANDROID: vendor_hooks: Add hooks for mutex and rwsem optimistic spin
* 9eec95bb4b41 UPSTREAM: io_uring: ensure that io_init_req() passes in the right issue_flags
* c112dc57713a ANDROID: Update the GKI symbol list and ABI XML
* bdf1c2ccdf1b UPSTREAM: io_uring: add missing lock in io_get_file_fixed
* 3352886cae4c ANDROID: gki_config: enable CONFIG_IIO_TRIGGERED_BUFFER
* e21e3d108bcd ANDROID: GKI: VIVO: Add a symbol to symbol list
* 5239ef3d19d8 UPSTREAM: drivers/thermal/cpufreq_cooling: Use private callback ops for each cooling device
* 287c9980a085 UPSTREAM: scsi: scsi_debug: Fix possible UAF in sdebug_add_host_helper()
* 6db5181a3f4a UPSTREAM: io_uring/rw: remove leftover debug statement
* 4390be5c797f UPSTREAM: io_uring/rw: ensure kiocb_end_write() is always called
* 6b3d1f961dc1 UPSTREAM: io_uring: fix double poll leak on repolling
* 3749f8d82684 UPSTREAM: io_uring: Clean up a false-positive warning from GCC 9.3.0
* 0da7ee3fbe46 UPSTREAM: io_uring/net: fix fast_iov assignment in io_setup_async_msg()
* 3a4f67f90391 UPSTREAM: io_uring: io_kiocb_update_pos() should not touch file for non -1 offset
* 3c83e0a95a36 UPSTREAM: io_uring/rw: defer fsnotify calls to task context
* 630c3722197a UPSTREAM: io_uring: do not recalculate ppos unnecessarily
* 47179f7dd8dd UPSTREAM: io_uring: update kiocb->ki_pos at execution time
* b0b3d93abc78 UPSTREAM: io_uring: remove duplicated calls to io_kiocb_ppos
* 7b865f60c7cf UPSTREAM: io_uring: ensure that cached task references are always put on exit
* c72cbb2252e5 UPSTREAM: io_uring: fix async accept on O_NONBLOCK sockets
* 88be697dc064 UPSTREAM: io_uring: allow re-poll if we made progress
* 393d994594b2 UPSTREAM: io_uring: support MSG_WAITALL for IORING_OP_SEND(MSG)
* 8f3a4070fd3b UPSTREAM: io_uring: add flag for disabling provided buffer recycling
* b0b6bfe44398 UPSTREAM: io_uring: ensure recv and recvmsg handle MSG_WAITALL correctly
* 40520bb96c93 UPSTREAM: io_uring: improve send/recv error handling
* 6c0dd68dbe1f UPSTREAM: io_uring: pass in EPOLL_URING_WAKE for eventfd signaling and wakeups
* ab6956ac6b34 UPSTREAM: eventfd: provide a eventfd_signal_mask() helper
* b4ab4ac9009d UPSTREAM: eventpoll: add EPOLL_URING_WAKE poll wakeup flag
* 2373a0c72f46 UPSTREAM: io_uring: don't gate task_work run on TIF_NOTIFY_SIGNAL
* b579578d93d5 UPSTREAM: io_uring/io-wq: only free worker if it was allocated for creation
* 19758f54f74d UPSTREAM: io_uring/io-wq: free worker if task_work creation is canceled
* 65e1f2ef67cc UPSTREAM: io_uring: lock overflowing for IOPOLL
* 198e5002e262 UPSTREAM: io_uring: Fix unsigned 'res' comparison with zero in io_fixup_rw_res()
* 5af453ff63c3 UPSTREAM: io_uring: fix CQ waiting timeout handling
* e6f9c1b71a5d UPSTREAM: io_uring: check for valid register opcode earlier
* dcc1ea1639be UPSTREAM: io_uring: Fix a null-ptr-deref in io_tctx_exit_cb()
* 3a1c153b9654 UPSTREAM: io_uring: move to separate directory
* c0dee081116f UPSTREAM: io_uring/poll: fix poll_refs race with cancelation
* 5a5dcf5c1d8c UPSTREAM: io_uring: make poll refs more robust
* 30909f865bd6 UPSTREAM: io_uring: cmpxchg for poll arm refs release
* 242ed498525d UPSTREAM: io_uring: fix tw losing poll events
* 7e603b207928 UPSTREAM: io_uring: update res mask in io_poll_check_events
* fab4d02938f3 UPSTREAM: wifi: cfg80211: Extend cfg80211_update_owe_info_event() for MLD AP
* 048ad5d37537 UPSTREAM: wifi: cfg80211: Extend cfg80211_new_sta() for MLD AP
* 9216110fdfd5 UPSTREAM: wifi: cfg80211: Authentication offload to user space for MLO connection in STA mode
* 272c5a9d376c UPSTREAM: wifi: cfg80211: trace: remove MAC_PR_{FMT,ARG}
* 99da8df3761f UPSTREAM: KVM: VMX: Execute IBPB on emulated VM-exit when guest has IBRS
* 16bb33d7efcf ANDROID: ABI: Update allowed list for QCOM
* 3383d21e9e60 UPSTREAM: wifi: cfg80211: Support 32 bytes KCK key in GTK rekey offload
* 26bac3f09374 ANDROID: MGLRU: Don't skip anon reclaim if swap low
* 151bc216581f ANDROID: incremental fs: Move throttling to outside page lock
* 3ab6fda925b5 ANDROID: incremental fs: Fix race between truncate and write last block
* aba5f5754be4 ANDROID: fuse-bpf: Do not change bpf program in lookups
* dd72bb259fa9 UPSTREAM: usb: gadget: u_serial: Add null pointer check in gserial_resume
* a2ee0d8df380 UPSTREAM: binder: Gracefully handle BINDER_TYPE_FDA objects with num_fds=0
* 9cdb4e5812fa UPSTREAM: binder: Address corner cases in deferred copy and fixup
* 884fec935c51 UPSTREAM: binder: fix pointer cast warning
* 0502554803f0 UPSTREAM: binder: defer copies of pre-patched txn data
* a9afae9aa409 UPSTREAM: binder: read pre-translated fds from sender buffer
* 7887b13e6be4 UPSTREAM: net_sched: reject TCF_EM_SIMPLE case for complex ematch module
* 89eccb84959f UPSTREAM: ext4: add inode table check in __ext4_get_inode_loc to aovid possible infinite loop
* fda78dabcaec Revert "ANDROID: GKI: Add vendor hook to binder transaction"
* c404b74d5f1e ANDROID: GKI: Update the ABI xml representation for fuse-bpf
* 7a1cca7dbd8e ANDROID: fuse-bpf: Add /sys/fs flags for fuse-bpf version
* f5f4199c102a ANDROID: fuse-bpf v1.1
* bff9debefdec ANDROID: GKI: update xiaomi symbol list
* 5a6502af1102 ANDROID: psi: Add vendor hooks for PSI tracing
* af8dfb011fd0 FROMLIST: input: Add KEY_CAMERA_FOCUS event in HID
* 79b3761c89ae BACKPORT: sched/core: Fix use-after-free bug in dup_user_cpus_ptr()
* a838fd5d0888 Revert "FROMGIT: sched: Add __releases annotations to affine_move_task()"
* 5767bdca07c5 Revert "BACKPORT: FROMGIT: sched: Introduce affinity_context"
* 158d54a8a831 Revert "BACKPORT: FROMGIT: sched: Always preserve the user requested cpumask"
* 92bd55bc5225 Revert "FROMLIST: sched: Fix use-after-free bug in dup_user_cpus_ptr()"
* bd82038474ec Revert "BACKPORT: FROMGIT: sched: Enforce user requested affinity"
* 0f54a1c923a1 Revert "FROMGIT: sched: Always clear user_cpus_ptr in do_set_cpus_allowed()"
* 97c7d8de1ddf Revert "ANDROID: sched: Keep sched_class::set_cpus_allowed stable"
* 4ef9aa1b493e Revert "ANDROID: sched: Move scratch_mask to a percpu variable"
* aa272796660e BACKPORT: of: reserved_mem: Have kmemleak ignore dynamically allocated reserved mem
* 20c1f0a6d2c6 Revert "BACKPORT: FROMGIT: mm/cma.c: make kmemleak aware of all CMA regions"
* 5862eafd8ef7 Revert "FROMGIT: mm/cma.c: delete kmemleak objects when freeing CMA areas to buddy at boot"
* 5c6418ddee6c Revert "UPSTREAM: mm: kmemleak: alloc gray object for reserved region with direct map"
* 45a51d2eb8c7 ANDROID: GKI: Update symbol list for Amlogic
* d41e54aefb92 ANDROID: GKI: Add symbol list for ZEKU
* 32d4e80df4cb ANDROID: dm-bow: Add ABI documentation
* 88e27b17aab6 ANDROID: dm-bow: Fix 5.15 compatibility issue
* 63a1e5f1d07a Revert "ANDROID: dm-bow: remove dm-bow"
* d07a013cd06f ANDROID: vendor_hook: fix the error record of rwsem
* 5fcf93b31647 ANDROID: ABI: Update allowed list for QCOM
* 16e7178e5875 ANDROID: GKI: Update abi_gki_aarch64_qcom symbols
* 4ef0a7dff1c4 ANDROID: crypto: testmgr - add back deleted hctr2 test vectors
* 2cde0330aa31 ANDROID: abi_gki_aarch64_qcom: Add rpmsg_rx_done and zap_vma_ptes
* 810133cb61fe ANDROID: cpuidle-psci: Fix suspicious RCU usage
* 6f810b08ef10 FROMGIT: usb: gadget: configfs: Restrict symlink creation is UDC already binded
* 9dff37ba7b7e ANDROID: Update symbol list for sunxi
* 18eaf71786cf FROMGIT: scsi: ufs: Try harder to change the power mode
* cfc314cd6f03 UPSTREAM: scsi: ufs: Reduce the START STOP UNIT timeout
* 6a9193a0ff96 UPSTREAM: 9p/fd: fix issue of list_del corruption in p9_fd_cancel()
* b4c3ac472028 UPSTREAM: fs: do not update freeing inode i_io_list
* b607fae9000f UPSTREAM: f2fs: fix to invalidate dcc->f2fs_issue_discard in error path
* 0b34c91b8367 FROMGIT: wifi: cfg80211: Fix extended KCK key length check in nl80211_set_rekey_data()
* f719d33f1144 UPSTREAM: iommu/iova: Fix alloc iova overflows issue
* 43c604d36ef2 UPSTREAM: iommu: Avoid races around device probe
* 613751d732f4 ANDROID: GKI: Update abi_gki_aarch64_pasa
* 2f7c6eb5876b ANDROID: softirq: Refine RT defer softirq
* 286300ece413 UPSTREAM: wifi: wilc1000: validate number of channels
* 7594f016edaf UPSTREAM: wifi: wilc1000: validate pairwise and authentication suite offsets
* d9a54ce812bf UPSTREAM: wifi: wilc1000: validate length of IEEE80211_P2P_ATTR_OPER_CHANNEL attribute
* 0be098594735 UPSTREAM: media: dvb-core: Fix UAF due to refcount races at releasing
* e5905d8ab396 ANDROID: Update the GKI symbol list and ABI XML
* 984241bdc04f UPSTREAM: efi: rt-wrapper: Add missing include
* ec6fe823507b UPSTREAM: arm64: efi: Execute runtime services from a dedicated stack
* 003dacfcee54 UPSTREAM: KVM: x86/mmu: Fix race condition in direct_page_fault
* 19987d1e7fee UPSTREAM: usb: gadget: uvc: Rename bmInterfaceFlags -> bmInterlaceFlags
* 6d2ec81c11aa ANDROID: GKI: KASAN: disable INLINE
* ae0a1eb8308a ANDROID: GKI: Update symbol list for mtk
* 9a8dcea6abcf ANDROID: usb: f_accessory: Check buffer size when initialised via composite
* 2a298e88eb2c UPSTREAM: drm/shmem-helper: Avoid vm_open error paths
* 2c76d2b9c5d2 UPSTREAM: proc: avoid integer type confusion in get_proc_long
* cc6c5c7fa237 UPSTREAM: ALSA: pcm: Move rwsem lock inside snd_ctl_elem_read to prevent UAF
* 0861407d6e2d UPSTREAM: proc: proc_skip_spaces() shouldn't think it is working on C strings
* 3cf30601b034 UPSTREAM: usb: gadget: f_hid: fix f_hidg lifetime vs cdev
* 8864b0342f70 UPSTREAM: nfp: fix use-after-free in area_cache_get()
* 9563d286197b FROMGIT: scsi: ufs: Modify Tactive time setting conditions
* afe869b80a61 ANDROID: gki_defconfig: disable various x86 and hw flags
* 4dc28fe92869 UPSTREAM: usb: gadget: f_fs: Fix unbalanced spinlock in __ffs_ep0_queue_wait

.xml file is updated due to new symbols being now tracked:

76 function symbol(s) added
  'u64 __blkg_prfill_rwstat(struct seq_file*, struct blkg_policy_data*, const struct blkg_rwstat_sample*)'
  'u64 __blkg_prfill_u64(struct seq_file*, struct blkg_policy_data*, u64)'
  'void __free_iova(struct iova_domain*, struct iova*)'
  'int __traceiter_android_vh_modify_thermal_throttle_update(void*, struct thermal_zone_device*, bool*)'
  'int __traceiter_android_vh_mpam_set(void*, struct task_struct*, struct task_struct*)'
  'int __traceiter_android_vh_mutex_can_spin_on_owner(void*, struct mutex*, int*)'
  'int __traceiter_android_vh_mutex_opt_spin_finish(void*, struct mutex*, bool)'
  'int __traceiter_android_vh_mutex_opt_spin_start(void*, struct mutex*, bool*, int*)'
  'int __traceiter_android_vh_psi_group(void*, struct psi_group*)'
  'int __traceiter_android_vh_rwsem_can_spin_on_owner(void*, struct rw_semaphore*, bool*)'
  'int __traceiter_android_vh_rwsem_opt_spin_finish(void*, struct rw_semaphore*, bool)'
  'int __traceiter_android_vh_rwsem_opt_spin_start(void*, struct rw_semaphore*, bool*, int*, bool)'
  'int __traceiter_wbc_writepage(void*, struct writeback_control*, struct backing_dev_info*)'
  'struct iova* alloc_iova(struct iova_domain*, unsigned long int, unsigned long int, bool)'
  'const char* bdi_dev_name(struct backing_dev_info*)'
  'void blkcg_print_blkgs(struct seq_file*, struct blkcg*, u64(*)(struct seq_file*, struct blkg_policy_data*, int), const struct blkcg_policy*, int, bool)'
  'void blkg_conf_finish(struct blkg_conf_ctx*)'
  'int blkg_conf_prep(struct blkcg*, const struct blkcg_policy*, char*, struct blkg_conf_ctx*)'
  'u64 blkg_prfill_rwstat(struct seq_file*, struct blkg_policy_data*, int)'
  'void blkg_rwstat_exit(struct blkg_rwstat*)'
  'int blkg_rwstat_init(struct blkg_rwstat*, gfp_t)'
  'void blkg_rwstat_recursive_sum(struct blkcg_gq*, struct blkcg_policy*, int, struct blkg_rwstat_sample*)'
  'u64 clockevent_delta2ns(unsigned long int, struct clock_event_device*)'
  'void clockevents_register_device(struct clock_event_device*)'
  'int crypto_authenc_extractkeys(struct crypto_authenc_keys*, const u8*, unsigned int)'
  'struct dentry* d_alloc_name(struct dentry*, const char*)'
  'void* devm_pci_remap_cfg_resource(struct device*, struct resource*)'
  'void* devm_pci_remap_cfgspace(struct device*, resource_size_t, resource_size_t)'
  'void devm_release_resource(struct device*, struct resource*)'
  'int divider_determine_rate(struct clk_hw*, struct clk_rate_request*, const struct clk_div_table*, u8, unsigned long int)'
  'struct iova* find_iova(struct iova_domain*, unsigned long int)'
  'struct file_system_type* get_fs_type(const char*)'
  'unsigned int get_next_ino()'
  'int get_tree_single(struct fs_context*, int(*)(struct super_block*, struct fs_context*))'
  'struct iio_channel* iio_channel_get_all(struct device*)'
  'void iio_channel_release_all(struct iio_channel*)'
  'struct iio_buffer* iio_kfifo_allocate()'
  'ssize_t iio_read_const_attr(struct device*, struct device_attribute*, char*)'
  'irqreturn_t iio_trigger_generic_data_rdy_poll(int, void*)'
  'void iio_triggered_buffer_cleanup(struct iio_dev*)'
  'int iio_triggered_buffer_setup_ext(struct iio_dev*, irqreturn_t(*)(int, void*), irqreturn_t(*)(int, void*), const struct iio_buffer_setup_ops*, const struct attribute**)'
  'int iio_update_buffers(struct iio_dev*, struct iio_buffer*, struct iio_buffer*)'
  'bool iio_validate_scan_mask_onehot(struct iio_dev*, const unsigned long int*)'
  'bool input_device_enabled(struct input_dev*)'
  'void input_set_poll_interval(struct input_dev*, unsigned int)'
  'int input_setup_polling(struct input_dev*, void(*)(struct input_dev*))'
  'struct io_cq* ioc_lookup_icq(struct io_context*, struct request_queue*)'
  'int iova_cache_get()'
  'void iova_cache_put()'
  'void irq_domain_associate_many(struct irq_domain*, unsigned int, irq_hw_number_t, int)'
  'void iterate_supers_type(struct file_system_type*, void(*)(struct super_block*, void*), void*)'
  'void kill_litter_super(struct super_block*)'
  'int mmc_set_blocklen(struct mmc_card*, unsigned int)'
  'int netdev_set_num_tc(struct net_device*, u8)'
  'int netdev_set_tc_queue(struct net_device*, u8, u16, u16)'
  'struct net_device* netdev_upper_get_next_dev_rcu(struct net_device*, struct list_head**)'
  'unsigned long int nr_free_buffer_pages()'
  'int of_pci_get_max_link_speed(struct device_node*)'
  'bool pci_ats_supported(struct pci_dev*)'
  'void pci_disable_ats(struct pci_dev*)'
  'int pci_enable_ats(struct pci_dev*, int)'
  'int rpmsg_rx_done(struct rpmsg_endpoint*, void*)'
  'int scsi_register_driver(struct device_driver*)'
  'void sdhci_adma_write_desc(struct sdhci_host*, void**, dma_addr_t, int, unsigned int)'
  'void sdhci_set_uhs_signaling(struct sdhci_host*, unsigned int)'
  'size_t sg_copy_buffer(struct scatterlist*, unsigned int, void*, size_t, off_t, bool)'
  'size_t sg_zero_buffer(struct scatterlist*, unsigned int, size_t, off_t)'
  'int simple_statfs(struct dentry*, struct kstatfs*)'
  'int sysfs_create_mount_point(struct kobject*, const char*)'
  'void sysfs_remove_mount_point(struct kobject*, const char*)'
  'unsigned char tty_get_char_size(unsigned int)'
  'int ufshcd_system_freeze(struct device*)'
  'int ufshcd_system_restore(struct device*)'
  'int ufshcd_system_thaw(struct device*)'
  'int usbnet_get_ethernet_addr(struct usbnet*, int)'
  'void zap_vma_ptes(struct vm_area_struct*, unsigned long int, unsigned long int)'

16 variable symbol(s) added
  'struct tracepoint __tracepoint_android_vh_modify_thermal_throttle_update'
  'struct tracepoint __tracepoint_android_vh_mpam_set'
  'struct tracepoint __tracepoint_android_vh_mutex_can_spin_on_owner'
  'struct tracepoint __tracepoint_android_vh_mutex_opt_spin_finish'
  'struct tracepoint __tracepoint_android_vh_mutex_opt_spin_start'
  'struct tracepoint __tracepoint_android_vh_psi_group'
  'struct tracepoint __tracepoint_android_vh_rwsem_can_spin_on_owner'
  'struct tracepoint __tracepoint_android_vh_rwsem_opt_spin_finish'
  'struct tracepoint __tracepoint_android_vh_rwsem_opt_spin_start'
  'struct tracepoint __tracepoint_wbc_writepage'
  'struct static_key_true io_cgrp_subsys_on_dfl_key'
  'const unsigned char pcie_link_speed[16]'
  'unsigned long int phy_basic_features[2]'
  'unsigned long int phy_gbit_features[2]'
  'const struct inode_operations simple_dir_inode_operations'
  'const struct file_operations simple_dir_operations'

type 'enum bpf_prog_type' changed
  enumerator 'BPF_PROG_TYPE_FUSE' (32) was added

Change-Id: Icab4315e6ba42d246424150be9dbd58a8bd98133
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
diff --git a/BUILD.bazel b/BUILD.bazel
index 52ae4e4a..b5270e1 100644
--- a/BUILD.bazel
+++ b/BUILD.bazel
@@ -22,6 +22,7 @@
     "android/abi_gki_aarch64_general",
     "android/abi_gki_aarch64_honor",
     "android/abi_gki_aarch64_imx",
+    "android/abi_gki_aarch64_lenovo",
     "android/abi_gki_aarch64_mtk",
     "android/abi_gki_aarch64_mtktv",
     "android/abi_gki_aarch64_oplus",
@@ -38,6 +39,7 @@
     "android/abi_gki_aarch64_virtual_device_removed",
     "android/abi_gki_aarch64_vivo",
     "android/abi_gki_aarch64_xiaomi",
+    "android/abi_gki_aarch64_zeku",
 ]
 
 define_common_kernels(target_configs = {
diff --git a/Documentation/ABI/testing/configfs-usb-gadget-uvc b/Documentation/ABI/testing/configfs-usb-gadget-uvc
index 611b23e..f00cff6 100644
--- a/Documentation/ABI/testing/configfs-usb-gadget-uvc
+++ b/Documentation/ABI/testing/configfs-usb-gadget-uvc
@@ -197,7 +197,7 @@
 					read-only
 		bmaControls		this format's data for bmaControls in
 					the streaming header
-		bmInterfaceFlags	specifies interlace information,
+		bmInterlaceFlags	specifies interlace information,
 					read-only
 		bAspectRatioY		the X dimension of the picture aspect
 					ratio, read-only
@@ -253,7 +253,7 @@
 					read-only
 		bmaControls		this format's data for bmaControls in
 					the streaming header
-		bmInterfaceFlags	specifies interlace information,
+		bmInterlaceFlags	specifies interlace information,
 					read-only
 		bAspectRatioY		the X dimension of the picture aspect
 					ratio, read-only
diff --git a/Documentation/ABI/testing/dm-bow b/Documentation/ABI/testing/dm-bow
new file mode 100644
index 0000000..d663e81
--- /dev/null
+++ b/Documentation/ABI/testing/dm-bow
@@ -0,0 +1,19 @@
+What:		/sys/block/dm-<num>/bow/free
+Date:		January 2023
+KernelVersion:	5.15
+Contact:	paullawrence@google.com
+Description:	free space
+		Free space on device in bytes. Only valid in state 0
+Users:		Android vold to determine if there is sufficient space for expected size
+		of checksum
+
+What:		/sys/block/dm-<num>/bow/state
+Date:		January 2023
+KernelVersion:	5.15
+Contact:	paullawrence@google.com
+Description:	dm-bow state
+		Read-write string containing 0, 1 or 2
+		0: Trim mode
+		1: Checkpoint mode
+		2: Committed mode
+		See Documentation/device-mapper/dm-bow for details
diff --git a/Documentation/ABI/testing/sysfs-fs-fuse b/Documentation/ABI/testing/sysfs-fs-fuse
new file mode 100644
index 0000000..b995684
--- /dev/null
+++ b/Documentation/ABI/testing/sysfs-fs-fuse
@@ -0,0 +1,19 @@
+What:		/sys/fs/fuse/features/fuse_bpf
+Date:		December 2022
+Contact:	Paul Lawrence <paullawrence@google.com>
+Description:
+		Read-only file that contains the word 'supported' if fuse-bpf is
+		supported, does not exist otherwise
+
+What:		/sys/fs/fuse/bpf_prog_type_fuse
+Date:		December 2022
+Contact:	Paul Lawrence <paullawrence@google.com>
+Description:
+		bpf_prog_type_fuse defines the program type of bpf programs that
+		may be passed to fuse-bpf. For upstream bpf program types, this
+		is a constant defined in a contiguous array of constants.
+		bpf_prog_type_fuse is appended to the end of the list, so it may
+		change and therefore its value must be read from this file.
+
+		Contents is ASCII decimal representation of bpf_prog_type_fuse
+
diff --git a/Documentation/ABI/testing/sysfs-fs-incfs b/Documentation/ABI/testing/sysfs-fs-incfs
index 690c687..e4e05f9 100644
--- a/Documentation/ABI/testing/sysfs-fs-incfs
+++ b/Documentation/ABI/testing/sysfs-fs-incfs
@@ -15,6 +15,12 @@
 Description:	Reads 'supported'. Present if zstd compression is supported
 		for data blocks.
 
+What:		/sys/fs/incremental-fs/features/bugfix_throttling
+Date:		January 2023
+Contact:	Paul Lawrence <paullawrence@google.com>
+Description:	Reads 'supported'. Present if the throttling lock bug is fixed
+		https://android-review.git.corp.google.com/c/kernel/common/+/2381827
+
 What:		/sys/fs/incremental-fs/instances/[name]
 Date:		April 2021
 Contact:	Paul Lawrence <paullawrence@google.com>
diff --git a/Documentation/device-mapper/dm-bow.txt b/Documentation/device-mapper/dm-bow.txt
new file mode 100644
index 0000000..e3fc4d2
--- /dev/null
+++ b/Documentation/device-mapper/dm-bow.txt
@@ -0,0 +1,99 @@
+dm_bow (backup on write)
+========================
+
+dm_bow is a device mapper driver that uses the free space on a device to back up
+data that is overwritten. The changes can then be committed by a simple state
+change, or rolled back by removing the dm_bow device and running a command line
+utility over the underlying device.
+
+dm_bow has three states, set by writing ‘1’ or ‘2’ to /sys/block/dm-?/bow/state.
+It is only possible to go from state 0 (initial state) to state 1, and then from
+state 1 to state 2.
+
+State 0: dm_bow collects all trims to the device and assumes that these mark
+free space on the overlying file system that can be safely used. Typically the
+mount code would create the dm_bow device, mount the file system, call the
+FITRIM ioctl on the file system then switch to state 1. These trims are not
+propagated to the underlying device.
+
+State 1: All writes to the device cause the underlying data to be backed up to
+the free (trimmed) area as needed in such a way as they can be restored.
+However, the writes, with one exception, then happen exactly as they would
+without dm_bow, so the device is always in a good final state. The exception is
+that sector 0 is used to keep a log of the latest changes, both to indicate that
+we are in this state and to allow rollback. See below for all details. If there
+isn't enough free space, writes are failed with -ENOSPC.
+
+State 2: The transition to state 2 triggers replacing the special sector 0 with
+the normal sector 0, and the freeing of all state information. dm_bow then
+becomes a pass-through driver, allowing the device to continue to be used with
+minimal performance impact.
+
+Usage
+=====
+dm-bow takes one command line parameter, the name of the underlying device.
+
+dm-bow will typically be used in the following way. dm-bow will be loaded with a
+suitable underlying device and the resultant device will be mounted. A file
+system trim will be issued via the FITRIM ioctl, then the device will be
+switched to state 1. The file system will now be used as normal. At some point,
+the changes can either be committed by switching to state 2, or rolled back by
+unmounting the file system, removing the dm-bow device and running the command
+line utility. Note that rebooting the device will be equivalent to unmounting
+and removing, but the command line utility must still be run
+
+Details of operation in state 1
+===============================
+
+dm_bow maintains a type for all sectors. A sector can be any of:
+
+SECTOR0
+SECTOR0_CURRENT
+UNCHANGED
+FREE
+CHANGED
+BACKUP
+
+SECTOR0 is the first sector on the device, and is used to hold the log of
+changes. This is the one exception.
+
+SECTOR0_CURRENT is a sector picked from the FREE sectors, and is where reads and
+writes from the true sector zero are redirected to. Note that like any backup
+sector, if the sector is written to directly, it must be moved again.
+
+UNCHANGED means that the sector has not been changed since we entered state 1.
+Thus if it is written to or trimmed, the contents must first be backed up.
+
+FREE means that the sector was trimmed in state 0 and has not yet been written
+to or used for backup. On being written to, a FREE sector is changed to CHANGED.
+
+CHANGED means that the sector has been modified, and can be further modified
+without further backup.
+
+BACKUP means that this is a free sector being used as a backup. On being written
+to, the contents must first be backed up again.
+
+All backup operations are logged to the first sector. The log sector has the
+format:
+--------------------------------------------------------
+| Magic | Count | Sequence | Log entry | Log entry | …
+--------------------------------------------------------
+
+Magic is a magic number. Count is the number of log entries. Sequence is 0
+initially. A log entry is
+
+-----------------------------------
+| Source | Dest | Size | Checksum |
+-----------------------------------
+
+When SECTOR0 is full, the log sector is backed up and another empty log sector
+created with sequence number one higher. The first entry in any log entry with
+sequence > 0 therefore must be the log of the backing up of the previous log
+sector. Note that sequence is not strictly needed, but is a useful sanity check
+and potentially limits the time spent trying to restore a corrupted snapshot.
+
+On entering state 1, dm_bow has a list of free sectors. All other sectors are
+unchanged. Sector0_current is selected from the free sectors and the contents of
+sector 0 are copied there. The sector 0 is backed up, which triggers the first
+log entry to be written.
+
diff --git a/Documentation/filesystems/incfs.rst b/Documentation/filesystems/incfs.rst
index 19db303..f0fb1d0 100644
--- a/Documentation/filesystems/incfs.rst
+++ b/Documentation/filesystems/incfs.rst
@@ -35,6 +35,9 @@
 /sys/fs/incremental-fs/features/zstd
   Reads 'supported'. Present if zstd compression is supported for data blocks.
 
+/sys/fs/incremental-fs/features/bugfix_throttling
+  Reads 'supported'. Present if the throttling lock bug is fixed
+
 Optional per mount
 ------------------
 
diff --git a/android/abi_gki_aarch64.xml b/android/abi_gki_aarch64.xml
index 1a8f0b5..2c6dd52 100644
--- a/android/abi_gki_aarch64.xml
+++ b/android/abi_gki_aarch64.xml
@@ -53,6 +53,8 @@
       <elf-symbol name='__blk_mq_end_request' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xeab34e0c'/>
       <elf-symbol name='__blk_rq_map_sg' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4930ff59'/>
       <elf-symbol name='__blkdev_issue_discard' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xff3fe611'/>
+      <elf-symbol name='__blkg_prfill_rwstat' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3452868'/>
+      <elf-symbol name='__blkg_prfill_u64' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3a3cd729'/>
       <elf-symbol name='__blockdev_direct_IO' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3ef2c900'/>
       <elf-symbol name='__bread_gfp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8cb12e3b'/>
       <elf-symbol name='__breadahead' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xae5ef6cb'/>
@@ -147,6 +149,7 @@
       <elf-symbol name='__filemap_set_wb_err' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x22a3a2ef'/>
       <elf-symbol name='__find_get_block' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdba41715'/>
       <elf-symbol name='__find_vma' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7d1fe95e'/>
+      <elf-symbol name='__free_iova' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbc8a675b'/>
       <elf-symbol name='__free_pages' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5157c749'/>
       <elf-symbol name='__fs_parse' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x85fc370d'/>
       <elf-symbol name='__fscrypt_encrypt_symlink' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc57fca8'/>
@@ -617,7 +620,12 @@
       <elf-symbol name='__traceiter_android_vh_modify_thermal_cpu_get_power' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xea658355'/>
       <elf-symbol name='__traceiter_android_vh_modify_thermal_request_freq' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x35e66620'/>
       <elf-symbol name='__traceiter_android_vh_modify_thermal_target_freq' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xedb4afc8'/>
+      <elf-symbol name='__traceiter_android_vh_modify_thermal_throttle_update' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x96812b4f'/>
+      <elf-symbol name='__traceiter_android_vh_mpam_set' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd8c7db79'/>
+      <elf-symbol name='__traceiter_android_vh_mutex_can_spin_on_owner' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x55cc62c7'/>
       <elf-symbol name='__traceiter_android_vh_mutex_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd4ab78cf'/>
+      <elf-symbol name='__traceiter_android_vh_mutex_opt_spin_finish' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x288b14b4'/>
+      <elf-symbol name='__traceiter_android_vh_mutex_opt_spin_start' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfd7dde3'/>
       <elf-symbol name='__traceiter_android_vh_mutex_unlock_slowpath' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe350fdab'/>
       <elf-symbol name='__traceiter_android_vh_mutex_wait_finish' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb94345e6'/>
       <elf-symbol name='__traceiter_android_vh_mutex_wait_start' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x717d1bd1'/>
@@ -633,6 +641,7 @@
       <elf-symbol name='__traceiter_android_vh_printk_caller_id' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x409ea043'/>
       <elf-symbol name='__traceiter_android_vh_printk_ext_header' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x35d0ca61'/>
       <elf-symbol name='__traceiter_android_vh_printk_hotplug' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5728d98f'/>
+      <elf-symbol name='__traceiter_android_vh_psi_group' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x10f97d22'/>
       <elf-symbol name='__traceiter_android_vh_record_mutex_lock_starttime' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x602544f5'/>
       <elf-symbol name='__traceiter_android_vh_record_pcpu_rwsem_starttime' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6f509622'/>
       <elf-symbol name='__traceiter_android_vh_record_rtmutex_lock_starttime' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5b9948c1'/>
@@ -641,7 +650,10 @@
       <elf-symbol name='__traceiter_android_vh_rmqueue' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x513a0462'/>
       <elf-symbol name='__traceiter_android_vh_rproc_recovery' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x12a1a6c0'/>
       <elf-symbol name='__traceiter_android_vh_rproc_recovery_set' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x59d30c47'/>
+      <elf-symbol name='__traceiter_android_vh_rwsem_can_spin_on_owner' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xea47bf87'/>
       <elf-symbol name='__traceiter_android_vh_rwsem_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xce4ae038'/>
+      <elf-symbol name='__traceiter_android_vh_rwsem_opt_spin_finish' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4e410cdc'/>
+      <elf-symbol name='__traceiter_android_vh_rwsem_opt_spin_start' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x901addbf'/>
       <elf-symbol name='__traceiter_android_vh_rwsem_read_wait_start' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x608da8a2'/>
       <elf-symbol name='__traceiter_android_vh_rwsem_wake' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7a813da7'/>
       <elf-symbol name='__traceiter_android_vh_rwsem_wake_finish' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbd987012'/>
@@ -767,6 +779,7 @@
       <elf-symbol name='__traceiter_unmap' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd3ec851c'/>
       <elf-symbol name='__traceiter_usb_gadget_connect' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7563ff8d'/>
       <elf-symbol name='__traceiter_usb_gadget_disconnect' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x437e0a6e'/>
+      <elf-symbol name='__traceiter_wbc_writepage' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x848b6b63'/>
       <elf-symbol name='__traceiter_workqueue_execute_end' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfd7ca165'/>
       <elf-symbol name='__traceiter_workqueue_execute_start' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6b629b42'/>
       <elf-symbol name='__traceiter_xdp_exception' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa43592f6'/>
@@ -899,6 +912,7 @@
       <elf-symbol name='alloc_contig_range' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x73abb180'/>
       <elf-symbol name='alloc_etherdev_mqs' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8df1e551'/>
       <elf-symbol name='alloc_io_pgtable_ops' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5bdbba72'/>
+      <elf-symbol name='alloc_iova' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbd6e713e'/>
       <elf-symbol name='alloc_netdev_mqs' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb2f23b63'/>
       <elf-symbol name='alloc_page_buffers' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x24ce50db'/>
       <elf-symbol name='alloc_pages_exact' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5fc72f0e'/>
@@ -954,6 +968,7 @@
       <elf-symbol name='bdev_read_only' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfe6d8a90'/>
       <elf-symbol name='bdevname' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xeb9b4334'/>
       <elf-symbol name='bdi_alloc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x514bad2f'/>
+      <elf-symbol name='bdi_dev_name' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2b01623f'/>
       <elf-symbol name='bdi_put' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc23d275e'/>
       <elf-symbol name='bdi_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6eee1e73'/>
       <elf-symbol name='bgpio_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x59e13f27'/>
@@ -1081,6 +1096,7 @@
       <elf-symbol name='blkcg_deactivate_policy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8173ed0e'/>
       <elf-symbol name='blkcg_policy_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x73b3f7c6'/>
       <elf-symbol name='blkcg_policy_unregister' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7fff7cc4'/>
+      <elf-symbol name='blkcg_print_blkgs' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x411a9213'/>
       <elf-symbol name='blkdev_compat_ptr_ioctl' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8520bda'/>
       <elf-symbol name='blkdev_get_by_dev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2f9a403c'/>
       <elf-symbol name='blkdev_get_by_path' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3fcde105'/>
@@ -1088,7 +1104,13 @@
       <elf-symbol name='blkdev_issue_flush' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7e807449'/>
       <elf-symbol name='blkdev_issue_zeroout' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc4d014d8'/>
       <elf-symbol name='blkdev_put' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x67a7f125'/>
+      <elf-symbol name='blkg_conf_finish' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe7d30ae0'/>
+      <elf-symbol name='blkg_conf_prep' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd2df33a3'/>
       <elf-symbol name='blkg_lookup_slowpath' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc6895884'/>
+      <elf-symbol name='blkg_prfill_rwstat' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa2d98337'/>
+      <elf-symbol name='blkg_rwstat_exit' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x19edd064'/>
+      <elf-symbol name='blkg_rwstat_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xaf0b6ba7'/>
+      <elf-symbol name='blkg_rwstat_recursive_sum' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa1151dc5'/>
       <elf-symbol name='block_invalidatepage' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x334b6464'/>
       <elf-symbol name='block_is_partially_uptodate' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc71c32f5'/>
       <elf-symbol name='block_truncate_page' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9e97be8a'/>
@@ -1282,7 +1304,9 @@
       <elf-symbol name='clk_unregister_gate' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8506baa8'/>
       <elf-symbol name='clkdev_add' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc3b20f84'/>
       <elf-symbol name='clkdev_drop' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x84a5c5ce'/>
+      <elf-symbol name='clockevent_delta2ns' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf8d1962'/>
       <elf-symbol name='clockevents_config_and_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd6c905b1'/>
+      <elf-symbol name='clockevents_register_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x60326b59'/>
       <elf-symbol name='clocks_calc_mult_shift' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x62bb09bf'/>
       <elf-symbol name='clocksource_mmio_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3f4fc1ef'/>
       <elf-symbol name='clocksource_mmio_readl_up' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x49b9dfb4'/>
@@ -1422,6 +1446,7 @@
       <elf-symbol name='crypto_alloc_skcipher' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2235b050'/>
       <elf-symbol name='crypto_alloc_sync_skcipher' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x28780bb5'/>
       <elf-symbol name='crypto_attr_alg_name' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9a11a0fc'/>
+      <elf-symbol name='crypto_authenc_extractkeys' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2479193e'/>
       <elf-symbol name='crypto_check_attr_type' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4934bdd0'/>
       <elf-symbol name='crypto_cipher_encrypt_one' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x55ef31d7'/>
       <elf-symbol name='crypto_cipher_setkey' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4a6b4031'/>
@@ -1501,6 +1526,7 @@
       <elf-symbol name='current_work' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd75ee543'/>
       <elf-symbol name='d_add' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2f9c3209'/>
       <elf-symbol name='d_add_ci' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6dc1857'/>
+      <elf-symbol name='d_alloc_name' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa7c5aad8'/>
       <elf-symbol name='d_delete' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x46e5f2bf'/>
       <elf-symbol name='d_find_alias' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x11c492cb'/>
       <elf-symbol name='d_instantiate' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x329d78c4'/>
@@ -1831,6 +1857,8 @@
       <elf-symbol name='devm_of_platform_populate' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe74e115b'/>
       <elf-symbol name='devm_of_pwm_get' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8c6c580e'/>
       <elf-symbol name='devm_pci_alloc_host_bridge' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9618c53d'/>
+      <elf-symbol name='devm_pci_remap_cfg_resource' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2a0c1626'/>
+      <elf-symbol name='devm_pci_remap_cfgspace' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6cf17398'/>
       <elf-symbol name='devm_phy_create' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4976235b'/>
       <elf-symbol name='devm_phy_get' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe5a76bd3'/>
       <elf-symbol name='devm_phy_optional_get' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfa24d9b0'/>
@@ -1867,6 +1895,7 @@
       <elf-symbol name='devm_regulator_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc151236f'/>
       <elf-symbol name='devm_regulator_register_notifier' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa1f5c258'/>
       <elf-symbol name='devm_regulator_unregister_notifier' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x83bce697'/>
+      <elf-symbol name='devm_release_resource' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfb306128'/>
       <elf-symbol name='devm_remove_action' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5e69a909'/>
       <elf-symbol name='devm_request_any_context_irq' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x366cbccd'/>
       <elf-symbol name='devm_request_pci_bus_resources' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf3b1e0f6'/>
@@ -1902,6 +1931,7 @@
       <elf-symbol name='disk_stack_limits' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x80b22036'/>
       <elf-symbol name='disk_start_io_acct' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfaf84ca3'/>
       <elf-symbol name='display_timings_release' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3b4c240a'/>
+      <elf-symbol name='divider_determine_rate' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x958b70dd'/>
       <elf-symbol name='divider_get_val' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5e798ffb'/>
       <elf-symbol name='divider_recalc_rate' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xaed8e548'/>
       <elf-symbol name='divider_ro_round_rate_parent' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7f8b7fae'/>
@@ -2675,6 +2705,7 @@
       <elf-symbol name='find_extend_vma' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x84bf623a'/>
       <elf-symbol name='find_get_pid' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x90b01573'/>
       <elf-symbol name='find_inode_nowait' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4ca74f5e'/>
+      <elf-symbol name='find_iova' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3790d7c9'/>
       <elf-symbol name='find_pid_ns' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9542fd3e'/>
       <elf-symbol name='find_task_by_vpid' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa6e07172'/>
       <elf-symbol name='find_user' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x508716e5'/>
@@ -2899,10 +2930,12 @@
       <elf-symbol name='get_device_system_crosststamp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4e5c9224'/>
       <elf-symbol name='get_each_dmabuf' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdf8e831f'/>
       <elf-symbol name='get_each_object_track' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9ff900e4'/>
+      <elf-symbol name='get_fs_type' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x393e814f'/>
       <elf-symbol name='get_governor_parent_kobj' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5e38d599'/>
       <elf-symbol name='get_kernel_pages' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd5b51a2'/>
       <elf-symbol name='get_net_ns_by_fd' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd8f872c'/>
       <elf-symbol name='get_net_ns_by_pid' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x78a69b54'/>
+      <elf-symbol name='get_next_ino' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe953b21f'/>
       <elf-symbol name='get_option' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb0e10781'/>
       <elf-symbol name='get_options' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x868acba5'/>
       <elf-symbol name='get_page_owner_handle' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbdd70345'/>
@@ -2920,6 +2953,7 @@
       <elf-symbol name='get_task_pid' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x806ce477'/>
       <elf-symbol name='get_thermal_instance' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd99fe99a'/>
       <elf-symbol name='get_tree_bdev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd49bbd04'/>
+      <elf-symbol name='get_tree_single' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x67ce2fcf'/>
       <elf-symbol name='get_unmapped_area' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x69dc3863'/>
       <elf-symbol name='get_unused_fd_flags' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa843805a'/>
       <elf-symbol name='get_user_ifreq' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x33fc2a31'/>
@@ -3192,7 +3226,9 @@
       <elf-symbol name='iio_buffer_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x704cf684'/>
       <elf-symbol name='iio_buffer_put' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd008be8d'/>
       <elf-symbol name='iio_channel_get' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4f4022e2'/>
+      <elf-symbol name='iio_channel_get_all' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1281098c'/>
       <elf-symbol name='iio_channel_release' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1b7a6504'/>
+      <elf-symbol name='iio_channel_release_all' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd4b877bf'/>
       <elf-symbol name='iio_dealloc_pollfunc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6c27ed80'/>
       <elf-symbol name='iio_device_alloc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x398bf38f'/>
       <elf-symbol name='iio_device_attach_buffer' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1896d888'/>
@@ -3203,6 +3239,7 @@
       <elf-symbol name='iio_device_unregister' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3438a517'/>
       <elf-symbol name='iio_get_channel_type' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x43cbc1df'/>
       <elf-symbol name='iio_get_time_ns' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd587aacb'/>
+      <elf-symbol name='iio_kfifo_allocate' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x79fbf1f2'/>
       <elf-symbol name='iio_pollfunc_store_time' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdf76bbeb'/>
       <elf-symbol name='iio_push_event' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe0bbeac1'/>
       <elf-symbol name='iio_push_to_buffers' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb70d5e3f'/>
@@ -3210,13 +3247,19 @@
       <elf-symbol name='iio_read_channel_processed' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2435705d'/>
       <elf-symbol name='iio_read_channel_raw' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x19a2a1e'/>
       <elf-symbol name='iio_read_channel_scale' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x10b8ec94'/>
+      <elf-symbol name='iio_read_const_attr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdbe815e1'/>
       <elf-symbol name='iio_read_mount_matrix' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x90100782'/>
       <elf-symbol name='iio_show_mount_matrix' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x131e3217'/>
       <elf-symbol name='iio_trigger_alloc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb9597d8'/>
       <elf-symbol name='iio_trigger_free' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6cbb2869'/>
+      <elf-symbol name='iio_trigger_generic_data_rdy_poll' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2d6bcdcb'/>
       <elf-symbol name='iio_trigger_notify_done' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfb4a9fd4'/>
       <elf-symbol name='iio_trigger_poll' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3970d75b'/>
       <elf-symbol name='iio_trigger_unregister' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x433fa49d'/>
+      <elf-symbol name='iio_triggered_buffer_cleanup' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x83d4b035'/>
+      <elf-symbol name='iio_triggered_buffer_setup_ext' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x40f791fb'/>
+      <elf-symbol name='iio_update_buffers' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x41949c3e'/>
+      <elf-symbol name='iio_validate_scan_mask_onehot' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x483f3668'/>
       <elf-symbol name='iio_write_channel_attribute' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x73f2aa5a'/>
       <elf-symbol name='iio_write_channel_raw' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9c01fbfc'/>
       <elf-symbol name='ilookup' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfa62da3e'/>
@@ -3261,6 +3304,7 @@
       <elf-symbol name='input_alloc_absinfo' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8d64962b'/>
       <elf-symbol name='input_allocate_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9e3bb8f1'/>
       <elf-symbol name='input_close_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcf9ef4a8'/>
+      <elf-symbol name='input_device_enabled' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x457260a3'/>
       <elf-symbol name='input_event' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdd007012'/>
       <elf-symbol name='input_ff_create' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd8da26c5'/>
       <elf-symbol name='input_ff_create_memless' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x17dd354a'/>
@@ -3282,7 +3326,9 @@
       <elf-symbol name='input_scancode_to_scalar' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2c256e1f'/>
       <elf-symbol name='input_set_abs_params' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x420c430d'/>
       <elf-symbol name='input_set_capability' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x344f2409'/>
+      <elf-symbol name='input_set_poll_interval' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x71fc88ff'/>
       <elf-symbol name='input_set_timestamp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf8e95ac5'/>
+      <elf-symbol name='input_setup_polling' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4ce7c773'/>
       <elf-symbol name='input_unregister_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6b8866fb'/>
       <elf-symbol name='input_unregister_handle' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8246bf52'/>
       <elf-symbol name='input_unregister_handler' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa6523ef7'/>
@@ -3299,6 +3345,7 @@
       <elf-symbol name='invalidate_mapping_pages' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x813bc518'/>
       <elf-symbol name='io_schedule' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x93a6e0b2'/>
       <elf-symbol name='io_schedule_timeout' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfbc4f89e'/>
+      <elf-symbol name='ioc_lookup_icq' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x406089f4'/>
       <elf-symbol name='iomap_dio_complete' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x344a2c84'/>
       <elf-symbol name='iommu_alloc_resv_region' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xaf40724'/>
       <elf-symbol name='iommu_attach_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5939a898'/>
@@ -3356,6 +3403,8 @@
       <elf-symbol name='iov_iter_revert' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xacf7aacd'/>
       <elf-symbol name='iov_iter_single_seg_count' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9160b01d'/>
       <elf-symbol name='iov_iter_zero' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x26913ed2'/>
+      <elf-symbol name='iova_cache_get' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x438d8df2'/>
+      <elf-symbol name='iova_cache_put' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc7061ef3'/>
       <elf-symbol name='ip6_find_1stfragopt' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3f0c45ff'/>
       <elf-symbol name='ip6_local_out' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe10f917c'/>
       <elf-symbol name='ip6_redirect' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4ea39e16'/>
@@ -3414,6 +3463,7 @@
       <elf-symbol name='irq_do_set_affinity' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6339391b'/>
       <elf-symbol name='irq_domain_add_legacy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x75d8e8dd'/>
       <elf-symbol name='irq_domain_alloc_irqs_parent' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x245655f7'/>
+      <elf-symbol name='irq_domain_associate_many' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf3e95203'/>
       <elf-symbol name='irq_domain_create_hierarchy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x78cded33'/>
       <elf-symbol name='irq_domain_disconnect_hierarchy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xacc1fea0'/>
       <elf-symbol name='irq_domain_free_irqs_common' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1436aef4'/>
@@ -3464,6 +3514,7 @@
       <elf-symbol name='iter_file_splice_write' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc249b27'/>
       <elf-symbol name='iterate_dir' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xff354035'/>
       <elf-symbol name='iterate_fd' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xca27c3a5'/>
+      <elf-symbol name='iterate_supers_type' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb826dc56'/>
       <elf-symbol name='iunique' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd5b19234'/>
       <elf-symbol name='iw_handler_get_spy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xda102b47'/>
       <elf-symbol name='iw_handler_get_thrspy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x141c3bfe'/>
@@ -3515,6 +3566,7 @@
       <elf-symbol name='kill_anon_super' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x62289ff3'/>
       <elf-symbol name='kill_block_super' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbcc4f9f4'/>
       <elf-symbol name='kill_fasync' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcc3c831e'/>
+      <elf-symbol name='kill_litter_super' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x703d7d07'/>
       <elf-symbol name='kill_pid' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3b88bc83'/>
       <elf-symbol name='kmalloc_order' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbbe80fdb'/>
       <elf-symbol name='kmalloc_order_trace' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb8b9f817'/>
@@ -3868,6 +3920,7 @@
       <elf-symbol name='mmc_select_timing' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4dd7e1f8'/>
       <elf-symbol name='mmc_send_status' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8853f365'/>
       <elf-symbol name='mmc_send_tuning' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9dec77b5'/>
+      <elf-symbol name='mmc_set_blocklen' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8e1b2e6c'/>
       <elf-symbol name='mmc_set_bus_mode' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3c5df88a'/>
       <elf-symbol name='mmc_set_bus_width' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf6debd0b'/>
       <elf-symbol name='mmc_set_clock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf4547be5'/>
@@ -3943,10 +3996,13 @@
       <elf-symbol name='netdev_rx_handler_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xead7afa1'/>
       <elf-symbol name='netdev_rx_handler_unregister' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xeb2621b'/>
       <elf-symbol name='netdev_set_default_ethtool_ops' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x635968e1'/>
+      <elf-symbol name='netdev_set_num_tc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4147447f'/>
+      <elf-symbol name='netdev_set_tc_queue' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x558440ef'/>
       <elf-symbol name='netdev_state_change' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xeb94dc1c'/>
       <elf-symbol name='netdev_update_features' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4e9c0fae'/>
       <elf-symbol name='netdev_upper_dev_link' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa418cded'/>
       <elf-symbol name='netdev_upper_dev_unlink' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf12f1b7b'/>
+      <elf-symbol name='netdev_upper_get_next_dev_rcu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2fa70555'/>
       <elf-symbol name='netdev_warn' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3c779fee'/>
       <elf-symbol name='netif_carrier_off' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x533f4833'/>
       <elf-symbol name='netif_carrier_on' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x10229dce'/>
@@ -3999,6 +4055,7 @@
       <elf-symbol name='noop_direct_IO' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x89b3ccb2'/>
       <elf-symbol name='noop_llseek' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd1208e05'/>
       <elf-symbol name='notify_change' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9ef55a3e'/>
+      <elf-symbol name='nr_free_buffer_pages' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x27fa66e1'/>
       <elf-symbol name='nr_ipi_get' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x215054f8'/>
       <elf-symbol name='ns_capable' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb88f6031'/>
       <elf-symbol name='ns_to_kernel_old_timeval' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6b853d06'/>
@@ -4138,6 +4195,7 @@
       <elf-symbol name='of_parse_phandle_with_args' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x765c77f7'/>
       <elf-symbol name='of_parse_phandle_with_fixed_args' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x89104b27'/>
       <elf-symbol name='of_pci_get_devfn' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x90c42d10'/>
+      <elf-symbol name='of_pci_get_max_link_speed' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xde2e3260'/>
       <elf-symbol name='of_pci_parse_bus_range' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9436ac52'/>
       <elf-symbol name='of_pci_range_parser_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf0a25ae9'/>
       <elf-symbol name='of_pci_range_parser_one' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5c3dbb96'/>
@@ -4237,6 +4295,7 @@
       <elf-symbol name='pci_alloc_irq_vectors_affinity' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x43faea6d'/>
       <elf-symbol name='pci_assign_resource' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x518a5e9f'/>
       <elf-symbol name='pci_assign_unassigned_bus_resources' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa7ee1a4f'/>
+      <elf-symbol name='pci_ats_supported' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe5097d2f'/>
       <elf-symbol name='pci_bus_add_devices' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdf68407'/>
       <elf-symbol name='pci_bus_assign_resources' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6c65a407'/>
       <elf-symbol name='pci_bus_resource_n' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1c51352c'/>
@@ -4252,6 +4311,7 @@
       <elf-symbol name='pci_dev_put' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x24e336ed'/>
       <elf-symbol name='pci_device_group' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x72412ebd'/>
       <elf-symbol name='pci_device_is_present' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc9660b71'/>
+      <elf-symbol name='pci_disable_ats' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe381ac22'/>
       <elf-symbol name='pci_disable_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbade0f65'/>
       <elf-symbol name='pci_disable_link_state' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xeaf6beca'/>
       <elf-symbol name='pci_disable_msi' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd6ae4223'/>
@@ -4259,6 +4319,7 @@
       <elf-symbol name='pci_disable_pcie_error_reporting' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfd00466f'/>
       <elf-symbol name='pci_disable_sriov' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xaad5808c'/>
       <elf-symbol name='pci_enable_atomic_ops_to_root' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe725351e'/>
+      <elf-symbol name='pci_enable_ats' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa07c8519'/>
       <elf-symbol name='pci_enable_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8d3142c4'/>
       <elf-symbol name='pci_enable_device_mem' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x65999657'/>
       <elf-symbol name='pci_enable_msi' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1c5a5118'/>
@@ -4989,6 +5050,7 @@
       <elf-symbol name='rpmsg_poll' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf60685b8'/>
       <elf-symbol name='rpmsg_register_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x61978e79'/>
       <elf-symbol name='rpmsg_release_channel' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x36dab3db'/>
+      <elf-symbol name='rpmsg_rx_done' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8624a2fc'/>
       <elf-symbol name='rpmsg_send' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcc4c51d'/>
       <elf-symbol name='rpmsg_sendto' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfaa7be47'/>
       <elf-symbol name='rpmsg_set_signals' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4fbe4d23'/>
@@ -5118,6 +5180,7 @@
       <elf-symbol name='scsi_normalize_sense' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfbad3cf0'/>
       <elf-symbol name='scsi_print_command' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd7b07baf'/>
       <elf-symbol name='scsi_print_sense_hdr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1c9473cc'/>
+      <elf-symbol name='scsi_register_driver' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe6ae0c99'/>
       <elf-symbol name='scsi_register_interface' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x51d2ced7'/>
       <elf-symbol name='scsi_remove_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8d935945'/>
       <elf-symbol name='scsi_remove_host' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xaf6952d7'/>
@@ -5130,6 +5193,7 @@
       <elf-symbol name='scsi_unblock_requests' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4fbfc120'/>
       <elf-symbol name='sdev_prefix_printk' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x23a274a0'/>
       <elf-symbol name='sdhci_add_host' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb1442b8a'/>
+      <elf-symbol name='sdhci_adma_write_desc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfc7d6d28'/>
       <elf-symbol name='sdhci_cleanup_host' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xddf06ad3'/>
       <elf-symbol name='sdhci_cqe_disable' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xaa6e8088'/>
       <elf-symbol name='sdhci_cqe_enable' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc1d66473'/>
@@ -5150,6 +5214,7 @@
       <elf-symbol name='sdhci_runtime_suspend_host' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x96d36979'/>
       <elf-symbol name='sdhci_set_bus_width' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd130fba9'/>
       <elf-symbol name='sdhci_set_power_noreg' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x80930048'/>
+      <elf-symbol name='sdhci_set_uhs_signaling' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x66c0bcd2'/>
       <elf-symbol name='sdhci_setup_host' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4f95bd19'/>
       <elf-symbol name='sdhci_suspend_host' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xed1e0f5a'/>
       <elf-symbol name='sdio_align_size' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa5de62ef'/>
@@ -5250,6 +5315,7 @@
       <elf-symbol name='sg_alloc_table' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3a2f6702'/>
       <elf-symbol name='sg_alloc_table_chained' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1bee4974'/>
       <elf-symbol name='sg_alloc_table_from_pages_segment' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdf889f6a'/>
+      <elf-symbol name='sg_copy_buffer' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8ac743de'/>
       <elf-symbol name='sg_copy_from_buffer' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x905695ab'/>
       <elf-symbol name='sg_copy_to_buffer' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2b8ab42'/>
       <elf-symbol name='sg_free_table' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7f5b4fe4'/>
@@ -5266,6 +5332,7 @@
       <elf-symbol name='sg_next' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x87b8798d'/>
       <elf-symbol name='sg_pcopy_from_buffer' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd0fe8d51'/>
       <elf-symbol name='sg_pcopy_to_buffer' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xea778fab'/>
+      <elf-symbol name='sg_zero_buffer' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2d192c70'/>
       <elf-symbol name='sget_fc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf74e8135'/>
       <elf-symbol name='shash_free_singlespawn_instance' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x49ac4a91'/>
       <elf-symbol name='shash_register_instance' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa4c04000'/>
@@ -5290,6 +5357,7 @@
       <elf-symbol name='simple_get_link' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x852e19d2'/>
       <elf-symbol name='simple_open' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7b9dbc42'/>
       <elf-symbol name='simple_read_from_buffer' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x619cb7dd'/>
+      <elf-symbol name='simple_statfs' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc4b2e1d7'/>
       <elf-symbol name='simple_strtol' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb742fd7'/>
       <elf-symbol name='simple_strtoll' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd7e56a4e'/>
       <elf-symbol name='simple_strtoul' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x20000329'/>
@@ -5766,6 +5834,7 @@
       <elf-symbol name='sysfs_create_group' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1da5bdd1'/>
       <elf-symbol name='sysfs_create_groups' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd3fe314a'/>
       <elf-symbol name='sysfs_create_link' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x38677ca'/>
+      <elf-symbol name='sysfs_create_mount_point' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x40179c7a'/>
       <elf-symbol name='sysfs_emit' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe783e261'/>
       <elf-symbol name='sysfs_emit_at' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x99f2d00a'/>
       <elf-symbol name='sysfs_merge_group' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfdec6bd4'/>
@@ -5778,6 +5847,7 @@
       <elf-symbol name='sysfs_remove_groups' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x30c19b90'/>
       <elf-symbol name='sysfs_remove_link' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5b93a483'/>
       <elf-symbol name='sysfs_remove_link_from_group' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4402ef19'/>
+      <elf-symbol name='sysfs_remove_mount_point' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x28d9d5b9'/>
       <elf-symbol name='sysfs_streq' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x222e7ce2'/>
       <elf-symbol name='sysfs_unmerge_group' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc37cfd7f'/>
       <elf-symbol name='sysfs_update_group' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x841f2264'/>
@@ -5945,6 +6015,7 @@
       <elf-symbol name='tty_driver_kref_put' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xef0763e'/>
       <elf-symbol name='tty_encode_baud_rate' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x54cfd2ef'/>
       <elf-symbol name='tty_flip_buffer_push' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf0104123'/>
+      <elf-symbol name='tty_get_char_size' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf72a65ea'/>
       <elf-symbol name='tty_hangup' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x25d8f29c'/>
       <elf-symbol name='tty_insert_flip_string_fixed_flag' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3b69cd4c'/>
       <elf-symbol name='tty_kclose' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe1b0a3b8'/>
@@ -6098,8 +6169,11 @@
       <elf-symbol name='ufshcd_runtime_suspend' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbafed781'/>
       <elf-symbol name='ufshcd_shutdown' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x684ba32e'/>
       <elf-symbol name='ufshcd_suspend_prepare' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcd3a0a7e'/>
+      <elf-symbol name='ufshcd_system_freeze' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3266acae'/>
+      <elf-symbol name='ufshcd_system_restore' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x98325377'/>
       <elf-symbol name='ufshcd_system_resume' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa1b3aa03'/>
       <elf-symbol name='ufshcd_system_suspend' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x68a59b34'/>
+      <elf-symbol name='ufshcd_system_thaw' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1847e552'/>
       <elf-symbol name='ufshcd_transfer_rsp_status' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x992d807e'/>
       <elf-symbol name='ufshcd_uic_change_pwr_mode' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8d553ef2'/>
       <elf-symbol name='ufshcd_uic_hibern8_enter' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x452fcee7'/>
@@ -6338,6 +6412,7 @@
       <elf-symbol name='usbnet_generic_cdc_bind' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4f9de791'/>
       <elf-symbol name='usbnet_get_drvinfo' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x381aa5e8'/>
       <elf-symbol name='usbnet_get_endpoints' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xae1963cd'/>
+      <elf-symbol name='usbnet_get_ethernet_addr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb6f103e1'/>
       <elf-symbol name='usbnet_get_link' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x76137a5e'/>
       <elf-symbol name='usbnet_get_link_ksettings_mii' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x509f05e9'/>
       <elf-symbol name='usbnet_get_msglevel' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7c8945c8'/>
@@ -6783,6 +6858,7 @@
       <elf-symbol name='xt_unregister_target' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf34cef62'/>
       <elf-symbol name='xt_unregister_targets' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x518b8265'/>
       <elf-symbol name='yield' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x760a0f4f'/>
+      <elf-symbol name='zap_vma_ptes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x95e13d4e'/>
       <elf-symbol name='zlib_deflate' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf2c43f3f'/>
       <elf-symbol name='zlib_deflateEnd' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc890c008'/>
       <elf-symbol name='zlib_deflateInit2' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5a0b73d0'/>
@@ -7077,7 +7153,12 @@
       <elf-symbol name='__tracepoint_android_vh_modify_thermal_cpu_get_power' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x72ac2026'/>
       <elf-symbol name='__tracepoint_android_vh_modify_thermal_request_freq' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x240f59e0'/>
       <elf-symbol name='__tracepoint_android_vh_modify_thermal_target_freq' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa965d530'/>
+      <elf-symbol name='__tracepoint_android_vh_modify_thermal_throttle_update' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x24a40163'/>
+      <elf-symbol name='__tracepoint_android_vh_mpam_set' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x315217a'/>
+      <elf-symbol name='__tracepoint_android_vh_mutex_can_spin_on_owner' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x80558a5f'/>
       <elf-symbol name='__tracepoint_android_vh_mutex_init' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x57f88efe'/>
+      <elf-symbol name='__tracepoint_android_vh_mutex_opt_spin_finish' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa0e404b1'/>
+      <elf-symbol name='__tracepoint_android_vh_mutex_opt_spin_start' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb4b26237'/>
       <elf-symbol name='__tracepoint_android_vh_mutex_unlock_slowpath' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf5dc2012'/>
       <elf-symbol name='__tracepoint_android_vh_mutex_wait_finish' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xaf33e17b'/>
       <elf-symbol name='__tracepoint_android_vh_mutex_wait_start' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x63ae9c7e'/>
@@ -7094,6 +7175,7 @@
       <elf-symbol name='__tracepoint_android_vh_printk_caller_id' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x422dde96'/>
       <elf-symbol name='__tracepoint_android_vh_printk_ext_header' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf400ae3e'/>
       <elf-symbol name='__tracepoint_android_vh_printk_hotplug' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7f6382dd'/>
+      <elf-symbol name='__tracepoint_android_vh_psi_group' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1b54b5dd'/>
       <elf-symbol name='__tracepoint_android_vh_ptype_head' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x40b365e3'/>
       <elf-symbol name='__tracepoint_android_vh_record_mutex_lock_starttime' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1deb1eec'/>
       <elf-symbol name='__tracepoint_android_vh_record_pcpu_rwsem_starttime' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x18111c92'/>
@@ -7105,7 +7187,10 @@
       <elf-symbol name='__tracepoint_android_vh_rproc_recovery_set' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf3adfa5d'/>
       <elf-symbol name='__tracepoint_android_vh_rtmutex_wait_finish' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9397e82e'/>
       <elf-symbol name='__tracepoint_android_vh_rtmutex_wait_start' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc443185a'/>
+      <elf-symbol name='__tracepoint_android_vh_rwsem_can_spin_on_owner' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x17248e7'/>
       <elf-symbol name='__tracepoint_android_vh_rwsem_init' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x554a1937'/>
+      <elf-symbol name='__tracepoint_android_vh_rwsem_opt_spin_finish' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7dc06ab2'/>
+      <elf-symbol name='__tracepoint_android_vh_rwsem_opt_spin_start' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9da0a858'/>
       <elf-symbol name='__tracepoint_android_vh_rwsem_read_wait_finish' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc2e8063f'/>
       <elf-symbol name='__tracepoint_android_vh_rwsem_read_wait_start' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x65ad336b'/>
       <elf-symbol name='__tracepoint_android_vh_rwsem_wake' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x41026d41'/>
@@ -7242,6 +7327,7 @@
       <elf-symbol name='__tracepoint_unmap' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2c36cc85'/>
       <elf-symbol name='__tracepoint_usb_gadget_connect' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5b9cc4fa'/>
       <elf-symbol name='__tracepoint_usb_gadget_disconnect' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x574ab5a6'/>
+      <elf-symbol name='__tracepoint_wbc_writepage' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6e59f821'/>
       <elf-symbol name='__tracepoint_workqueue_execute_end' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xecbfa711'/>
       <elf-symbol name='__tracepoint_workqueue_execute_start' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8db61368'/>
       <elf-symbol name='__tracepoint_xdp_exception' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8b7a698b'/>
@@ -7328,6 +7414,7 @@
       <elf-symbol name='init_task' size='4608' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xaf60e2d8'/>
       <elf-symbol name='init_user_ns' size='656' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3e5bcdca'/>
       <elf-symbol name='init_uts_ns' size='432' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcccbdadf'/>
+      <elf-symbol name='io_cgrp_subsys_on_dfl_key' size='16' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7de6cc23'/>
       <elf-symbol name='iomem_resource' size='96' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc7da062f'/>
       <elf-symbol name='ioport_resource' size='96' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6bbf1b3e'/>
       <elf-symbol name='ipv6_stub' size='8' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe4ec6265'/>
@@ -7383,8 +7470,11 @@
       <elf-symbol name='param_ops_ulong' size='32' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xefc8860a'/>
       <elf-symbol name='param_ops_ushort' size='32' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x35701c2d'/>
       <elf-symbol name='pci_bus_type' size='208' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5ed7d00a'/>
+      <elf-symbol name='pcie_link_speed' size='16' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe4b064f9'/>
       <elf-symbol name='percpu_counter_batch' size='4' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5240ee7'/>
+      <elf-symbol name='phy_basic_features' size='16' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd17d2a22'/>
       <elf-symbol name='phy_basic_t1_features' size='16' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbbf4dfbe'/>
+      <elf-symbol name='phy_gbit_features' size='16' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8effb505'/>
       <elf-symbol name='phy_gbit_fibre_features' size='16' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb98bb315'/>
       <elf-symbol name='platform_bus' size='912' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xeacdfb3f'/>
       <elf-symbol name='platform_bus_type' size='208' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x648ffea5'/>
@@ -7410,6 +7500,8 @@
       <elf-symbol name='sched_feat_names' size='200' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x36707baf'/>
       <elf-symbol name='sched_uclamp_used' size='16' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x56a37c5'/>
       <elf-symbol name='scsi_command_size_tbl' size='8' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x334da4e'/>
+      <elf-symbol name='simple_dir_inode_operations' size='256' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf392a209'/>
+      <elf-symbol name='simple_dir_operations' size='288' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x880cfd6f'/>
       <elf-symbol name='snd_ecards_limit' size='4' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3971b4df'/>
       <elf-symbol name='snd_pcm_std_chmaps' size='96' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4e1b99f'/>
       <elf-symbol name='snd_soc_pm_ops' size='192' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x198825b6'/>
@@ -11684,15 +11776,15 @@
         <enumerator name='DRM_CONNECTOR_UNREGISTERED' value='2'/>
       </enum-decl>
       <typedef-decl name='seqcount_spinlock_t' type-id='0f5450f3' filepath='include/linux/seqlock.h' line='277' column='1' id='0b9c5397'/>
-      <class-decl name='hid_report_enum' size-in-bits='16576' is-struct='yes' visibility='default' filepath='include/linux/hid.h' line='499' column='1' id='0b9e92f3'>
+      <class-decl name='hid_report_enum' size-in-bits='16576' is-struct='yes' visibility='default' filepath='include/linux/hid.h' line='500' column='1' id='0b9e92f3'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='numbered' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='500' column='1'/>
+          <var-decl name='numbered' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='501' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='64'>
-          <var-decl name='report_list' type-id='72f469ec' visibility='default' filepath='include/linux/hid.h' line='501' column='1'/>
+          <var-decl name='report_list' type-id='72f469ec' visibility='default' filepath='include/linux/hid.h' line='502' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='192'>
-          <var-decl name='report_id_hash' type-id='042b23b6' visibility='default' filepath='include/linux/hid.h' line='502' column='1'/>
+          <var-decl name='report_id_hash' type-id='042b23b6' visibility='default' filepath='include/linux/hid.h' line='503' column='1'/>
         </data-member>
       </class-decl>
       <pointer-type-def type-id='0174792d' size-in-bits='64' id='0ba194b9'/>
@@ -11991,12 +12083,12 @@
       </enum-decl>
       <pointer-type-def type-id='51dff603' size-in-bits='64' id='0c90828b'/>
       <pointer-type-def type-id='36051b76' size-in-bits='64' id='0c90c619'/>
-      <class-decl name='cfg80211_ssid' size-in-bits='264' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='2473' column='1' id='0c960fcf'>
+      <class-decl name='cfg80211_ssid' size-in-bits='264' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='2505' column='1' id='0c960fcf'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='ssid' type-id='e3dc4fdb' visibility='default' filepath='include/net/cfg80211.h' line='2474' column='1'/>
+          <var-decl name='ssid' type-id='e3dc4fdb' visibility='default' filepath='include/net/cfg80211.h' line='2506' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='256'>
-          <var-decl name='ssid_len' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='2475' column='1'/>
+          <var-decl name='ssid_len' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='2507' column='1'/>
         </data-member>
       </class-decl>
       <function-type size-in-bits='64' id='0c98f83d'>
@@ -12005,6 +12097,7 @@
         <parameter type-id='bd54fe1a'/>
         <return type-id='bd54fe1a'/>
       </function-type>
+      <pointer-type-def type-id='29e79c3f' size-in-bits='64' id='0c9ab50f'/>
       <enum-decl name='thermal_trend' filepath='include/linux/thermal.h' line='40' column='1' id='0ca326b7'>
         <underlying-type type-id='9cac1fee'/>
         <enumerator name='THERMAL_TREND_STABLE' value='0'/>
@@ -12443,15 +12536,15 @@
           <var-decl name='dbg_dev_root' type-id='27675065' visibility='default' filepath='include/linux/dmaengine.h' line='954' column='1'/>
         </data-member>
       </class-decl>
-      <class-decl name='nl80211_wowlan_tcp_data_token_feature' size-in-bits='96' is-struct='yes' visibility='default' filepath='include/uapi/linux/nl80211.h' line='5685' column='1' id='0dd56ffa'>
+      <class-decl name='nl80211_wowlan_tcp_data_token_feature' size-in-bits='96' is-struct='yes' visibility='default' filepath='include/uapi/linux/nl80211.h' line='5710' column='1' id='0dd56ffa'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='min_len' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/nl80211.h' line='5686' column='1'/>
+          <var-decl name='min_len' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/nl80211.h' line='5711' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='32'>
-          <var-decl name='max_len' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/nl80211.h' line='5686' column='1'/>
+          <var-decl name='max_len' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/nl80211.h' line='5711' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='64'>
-          <var-decl name='bufsize' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/nl80211.h' line='5686' column='1'/>
+          <var-decl name='bufsize' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/nl80211.h' line='5711' column='1'/>
         </data-member>
       </class-decl>
       <array-type-def dimensions='1' type-id='8f048e17' size-in-bits='368' id='0ddb15d8'>
@@ -12618,42 +12711,42 @@
           <var-decl name='bNumberPowerFilters' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='144' column='1'/>
         </data-member>
       </class-decl>
-      <class-decl name='hid_ll_driver' size-in-bits='768' is-struct='yes' visibility='default' filepath='include/linux/hid.h' line='812' column='1' id='0e5e2ca6'>
+      <class-decl name='hid_ll_driver' size-in-bits='768' is-struct='yes' visibility='default' filepath='include/linux/hid.h' line='813' column='1' id='0e5e2ca6'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='start' type-id='7e01f3db' visibility='default' filepath='include/linux/hid.h' line='813' column='1'/>
+          <var-decl name='start' type-id='7e01f3db' visibility='default' filepath='include/linux/hid.h' line='814' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='64'>
-          <var-decl name='stop' type-id='5befc19c' visibility='default' filepath='include/linux/hid.h' line='814' column='1'/>
+          <var-decl name='stop' type-id='5befc19c' visibility='default' filepath='include/linux/hid.h' line='815' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='128'>
-          <var-decl name='open' type-id='7e01f3db' visibility='default' filepath='include/linux/hid.h' line='816' column='1'/>
+          <var-decl name='open' type-id='7e01f3db' visibility='default' filepath='include/linux/hid.h' line='817' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='192'>
-          <var-decl name='close' type-id='5befc19c' visibility='default' filepath='include/linux/hid.h' line='817' column='1'/>
+          <var-decl name='close' type-id='5befc19c' visibility='default' filepath='include/linux/hid.h' line='818' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='256'>
-          <var-decl name='power' type-id='8cefa062' visibility='default' filepath='include/linux/hid.h' line='819' column='1'/>
+          <var-decl name='power' type-id='8cefa062' visibility='default' filepath='include/linux/hid.h' line='820' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='320'>
-          <var-decl name='parse' type-id='7e01f3db' visibility='default' filepath='include/linux/hid.h' line='821' column='1'/>
+          <var-decl name='parse' type-id='7e01f3db' visibility='default' filepath='include/linux/hid.h' line='822' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='384'>
-          <var-decl name='request' type-id='8f2ea2db' visibility='default' filepath='include/linux/hid.h' line='823' column='1'/>
+          <var-decl name='request' type-id='8f2ea2db' visibility='default' filepath='include/linux/hid.h' line='824' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='448'>
-          <var-decl name='wait' type-id='7e01f3db' visibility='default' filepath='include/linux/hid.h' line='826' column='1'/>
+          <var-decl name='wait' type-id='7e01f3db' visibility='default' filepath='include/linux/hid.h' line='827' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='512'>
-          <var-decl name='raw_request' type-id='94b60312' visibility='default' filepath='include/linux/hid.h' line='828' column='1'/>
+          <var-decl name='raw_request' type-id='94b60312' visibility='default' filepath='include/linux/hid.h' line='829' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='576'>
-          <var-decl name='output_report' type-id='587d2ba7' visibility='default' filepath='include/linux/hid.h' line='832' column='1'/>
+          <var-decl name='output_report' type-id='587d2ba7' visibility='default' filepath='include/linux/hid.h' line='833' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='640'>
-          <var-decl name='idle' type-id='6fed6bf0' visibility='default' filepath='include/linux/hid.h' line='834' column='1'/>
+          <var-decl name='idle' type-id='6fed6bf0' visibility='default' filepath='include/linux/hid.h' line='835' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='704'>
-          <var-decl name='may_wakeup' type-id='cfc95081' visibility='default' filepath='include/linux/hid.h' line='835' column='1'/>
+          <var-decl name='may_wakeup' type-id='cfc95081' visibility='default' filepath='include/linux/hid.h' line='836' column='1'/>
         </data-member>
       </class-decl>
       <function-type size-in-bits='64' id='0e61b6d4'>
@@ -12699,18 +12792,18 @@
           <var-decl name='icmpv6msgdev' type-id='793f0d19' visibility='default' filepath='include/net/if_inet6.h' line='166' column='1'/>
         </data-member>
       </class-decl>
-      <class-decl name='ipv6_rt_hdr' size-in-bits='32' is-struct='yes' visibility='default' filepath='include/uapi/linux/ipv6.h' line='49' column='1' id='0eae882e'>
+      <class-decl name='ipv6_rt_hdr' size-in-bits='32' is-struct='yes' visibility='default' filepath='include/uapi/linux/ipv6.h' line='50' column='1' id='0eae882e'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='nexthdr' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/ipv6.h' line='50' column='1'/>
+          <var-decl name='nexthdr' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/ipv6.h' line='51' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='8'>
-          <var-decl name='hdrlen' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/ipv6.h' line='51' column='1'/>
+          <var-decl name='hdrlen' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/ipv6.h' line='52' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='16'>
-          <var-decl name='type' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/ipv6.h' line='52' column='1'/>
+          <var-decl name='type' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/ipv6.h' line='53' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='24'>
-          <var-decl name='segments_left' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/ipv6.h' line='53' column='1'/>
+          <var-decl name='segments_left' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/ipv6.h' line='54' column='1'/>
         </data-member>
       </class-decl>
       <typedef-decl name='mm_context_t' type-id='46f77458' filepath='arch/arm64/include/asm/mmu.h' line='28' column='1' id='0eb9c3fd'/>
@@ -13169,24 +13262,24 @@
       </function-type>
       <pointer-type-def type-id='bd4974e4' size-in-bits='64' id='100f2106'/>
       <qualified-type-def type-id='78e57306' const='yes' id='10117043'/>
-      <class-decl name='trace_subsystem_dir' size-in-bits='384' is-struct='yes' visibility='default' filepath='kernel/trace/trace.h' line='1300' column='1' id='10143522'>
+      <class-decl name='trace_subsystem_dir' size-in-bits='384' is-struct='yes' visibility='default' filepath='kernel/trace/trace.h' line='1298' column='1' id='10143522'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='kernel/trace/trace.h' line='1301' column='1'/>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='kernel/trace/trace.h' line='1299' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='128'>
-          <var-decl name='subsystem' type-id='841939f3' visibility='default' filepath='kernel/trace/trace.h' line='1302' column='1'/>
+          <var-decl name='subsystem' type-id='841939f3' visibility='default' filepath='kernel/trace/trace.h' line='1300' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='192'>
-          <var-decl name='tr' type-id='898c1076' visibility='default' filepath='kernel/trace/trace.h' line='1303' column='1'/>
+          <var-decl name='tr' type-id='898c1076' visibility='default' filepath='kernel/trace/trace.h' line='1301' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='256'>
-          <var-decl name='entry' type-id='27675065' visibility='default' filepath='kernel/trace/trace.h' line='1304' column='1'/>
+          <var-decl name='entry' type-id='27675065' visibility='default' filepath='kernel/trace/trace.h' line='1302' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='320'>
-          <var-decl name='ref_count' type-id='95e97e5e' visibility='default' filepath='kernel/trace/trace.h' line='1305' column='1'/>
+          <var-decl name='ref_count' type-id='95e97e5e' visibility='default' filepath='kernel/trace/trace.h' line='1303' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='352'>
-          <var-decl name='nr_events' type-id='95e97e5e' visibility='default' filepath='kernel/trace/trace.h' line='1306' column='1'/>
+          <var-decl name='nr_events' type-id='95e97e5e' visibility='default' filepath='kernel/trace/trace.h' line='1304' column='1'/>
         </data-member>
       </class-decl>
       <class-decl name='v4l2_frmsize_discrete' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/uapi/linux/videodev2.h' line='815' column='1' id='10186cf6'>
@@ -13661,54 +13754,54 @@
       </array-type-def>
       <pointer-type-def type-id='14617e76' size-in-bits='64' id='117460b0'/>
       <pointer-type-def type-id='cf396435' size-in-bits='64' id='11777d05'/>
-      <class-decl name='ieee80211_iface_combination' size-in-bits='704' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='5028' column='1' id='1179f27e'>
+      <class-decl name='ieee80211_iface_combination' size-in-bits='704' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='5083' column='1' id='1179f27e'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='limits' type-id='2fde6795' visibility='default' filepath='include/net/cfg80211.h' line='5033' column='1'/>
+          <var-decl name='limits' type-id='2fde6795' visibility='default' filepath='include/net/cfg80211.h' line='5088' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='64'>
-          <var-decl name='num_different_channels' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5039' column='1'/>
+          <var-decl name='num_different_channels' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5094' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='96'>
-          <var-decl name='max_interfaces' type-id='1dc6a898' visibility='default' filepath='include/net/cfg80211.h' line='5045' column='1'/>
+          <var-decl name='max_interfaces' type-id='1dc6a898' visibility='default' filepath='include/net/cfg80211.h' line='5100' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='112'>
-          <var-decl name='n_limits' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5051' column='1'/>
+          <var-decl name='n_limits' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5106' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='120'>
-          <var-decl name='beacon_int_infra_match' type-id='b50a4934' visibility='default' filepath='include/net/cfg80211.h' line='5058' column='1'/>
+          <var-decl name='beacon_int_infra_match' type-id='b50a4934' visibility='default' filepath='include/net/cfg80211.h' line='5113' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='128'>
-          <var-decl name='radar_detect_widths' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5064' column='1'/>
+          <var-decl name='radar_detect_widths' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5119' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='136'>
-          <var-decl name='radar_detect_regions' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5070' column='1'/>
+          <var-decl name='radar_detect_regions' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5125' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='160'>
-          <var-decl name='beacon_int_min_gcd' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5083' column='1'/>
+          <var-decl name='beacon_int_min_gcd' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5138' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='192'>
-          <var-decl name='android_backport_reserved1' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5085' column='1'/>
+          <var-decl name='android_backport_reserved1' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5140' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='256'>
-          <var-decl name='android_backport_reserved2' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5086' column='1'/>
+          <var-decl name='android_backport_reserved2' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5141' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='320'>
-          <var-decl name='android_backport_reserved3' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5087' column='1'/>
+          <var-decl name='android_backport_reserved3' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5142' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='384'>
-          <var-decl name='android_backport_reserved4' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5088' column='1'/>
+          <var-decl name='android_backport_reserved4' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5143' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='448'>
-          <var-decl name='android_vendor_data1' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5091' column='1'/>
+          <var-decl name='android_vendor_data1' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5146' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='512'>
-          <var-decl name='android_vendor_data2' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5092' column='1'/>
+          <var-decl name='android_vendor_data2' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5147' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='576'>
-          <var-decl name='android_vendor_data3' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5093' column='1'/>
+          <var-decl name='android_vendor_data3' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5148' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='640'>
-          <var-decl name='android_vendor_data4' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5094' column='1'/>
+          <var-decl name='android_vendor_data4' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5149' column='1'/>
         </data-member>
       </class-decl>
       <function-type size-in-bits='64' id='117b6b23'>
@@ -14447,117 +14540,117 @@
         </data-member>
       </class-decl>
       <pointer-type-def type-id='4d855bce' size-in-bits='64' id='12a060a4'/>
-      <class-decl name='cfg80211_sched_scan_request' size-in-bits='2112' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='2701' column='1' id='12a2e88f'>
+      <class-decl name='cfg80211_sched_scan_request' size-in-bits='2112' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='2733' column='1' id='12a2e88f'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='reqid' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='2702' column='1'/>
+          <var-decl name='reqid' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='2734' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='64'>
-          <var-decl name='ssids' type-id='a1fa7fb7' visibility='default' filepath='include/net/cfg80211.h' line='2703' column='1'/>
+          <var-decl name='ssids' type-id='a1fa7fb7' visibility='default' filepath='include/net/cfg80211.h' line='2735' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='128'>
-          <var-decl name='n_ssids' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='2704' column='1'/>
+          <var-decl name='n_ssids' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='2736' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='160'>
-          <var-decl name='n_channels' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='2705' column='1'/>
+          <var-decl name='n_channels' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='2737' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='192'>
-          <var-decl name='scan_width' type-id='95d46034' visibility='default' filepath='include/net/cfg80211.h' line='2706' column='1'/>
+          <var-decl name='scan_width' type-id='95d46034' visibility='default' filepath='include/net/cfg80211.h' line='2738' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='256'>
-          <var-decl name='ie' type-id='bbaf3419' visibility='default' filepath='include/net/cfg80211.h' line='2707' column='1'/>
+          <var-decl name='ie' type-id='bbaf3419' visibility='default' filepath='include/net/cfg80211.h' line='2739' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='320'>
-          <var-decl name='ie_len' type-id='b59d7dce' visibility='default' filepath='include/net/cfg80211.h' line='2708' column='1'/>
+          <var-decl name='ie_len' type-id='b59d7dce' visibility='default' filepath='include/net/cfg80211.h' line='2740' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='384'>
-          <var-decl name='flags' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='2709' column='1'/>
+          <var-decl name='flags' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='2741' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='448'>
-          <var-decl name='match_sets' type-id='ea00c914' visibility='default' filepath='include/net/cfg80211.h' line='2710' column='1'/>
+          <var-decl name='match_sets' type-id='ea00c914' visibility='default' filepath='include/net/cfg80211.h' line='2742' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='512'>
-          <var-decl name='n_match_sets' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='2711' column='1'/>
+          <var-decl name='n_match_sets' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='2743' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='544'>
-          <var-decl name='min_rssi_thold' type-id='a7832498' visibility='default' filepath='include/net/cfg80211.h' line='2712' column='1'/>
+          <var-decl name='min_rssi_thold' type-id='a7832498' visibility='default' filepath='include/net/cfg80211.h' line='2744' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='576'>
-          <var-decl name='delay' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='2713' column='1'/>
+          <var-decl name='delay' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='2745' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='640'>
-          <var-decl name='scan_plans' type-id='302e9391' visibility='default' filepath='include/net/cfg80211.h' line='2714' column='1'/>
+          <var-decl name='scan_plans' type-id='302e9391' visibility='default' filepath='include/net/cfg80211.h' line='2746' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='704'>
-          <var-decl name='n_scan_plans' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='2715' column='1'/>
+          <var-decl name='n_scan_plans' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='2747' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='736'>
-          <var-decl name='mac_addr' type-id='cf1a4160' visibility='default' filepath='include/net/cfg80211.h' line='2717' column='1'/>
+          <var-decl name='mac_addr' type-id='cf1a4160' visibility='default' filepath='include/net/cfg80211.h' line='2749' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='784'>
-          <var-decl name='mac_addr_mask' type-id='cf1a4160' visibility='default' filepath='include/net/cfg80211.h' line='2718' column='1'/>
+          <var-decl name='mac_addr_mask' type-id='cf1a4160' visibility='default' filepath='include/net/cfg80211.h' line='2750' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='832'>
-          <var-decl name='relative_rssi_set' type-id='b50a4934' visibility='default' filepath='include/net/cfg80211.h' line='2720' column='1'/>
+          <var-decl name='relative_rssi_set' type-id='b50a4934' visibility='default' filepath='include/net/cfg80211.h' line='2752' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='840'>
-          <var-decl name='relative_rssi' type-id='fdbf7a0f' visibility='default' filepath='include/net/cfg80211.h' line='2721' column='1'/>
+          <var-decl name='relative_rssi' type-id='fdbf7a0f' visibility='default' filepath='include/net/cfg80211.h' line='2753' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='864'>
-          <var-decl name='rssi_adjust' type-id='5da08e25' visibility='default' filepath='include/net/cfg80211.h' line='2722' column='1'/>
+          <var-decl name='rssi_adjust' type-id='5da08e25' visibility='default' filepath='include/net/cfg80211.h' line='2754' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='960'>
-          <var-decl name='wiphy' type-id='666fb412' visibility='default' filepath='include/net/cfg80211.h' line='2725' column='1'/>
+          <var-decl name='wiphy' type-id='666fb412' visibility='default' filepath='include/net/cfg80211.h' line='2757' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1024'>
-          <var-decl name='dev' type-id='68a2d05b' visibility='default' filepath='include/net/cfg80211.h' line='2726' column='1'/>
+          <var-decl name='dev' type-id='68a2d05b' visibility='default' filepath='include/net/cfg80211.h' line='2758' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1088'>
-          <var-decl name='scan_start' type-id='7359adad' visibility='default' filepath='include/net/cfg80211.h' line='2727' column='1'/>
+          <var-decl name='scan_start' type-id='7359adad' visibility='default' filepath='include/net/cfg80211.h' line='2759' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1152'>
-          <var-decl name='report_results' type-id='b50a4934' visibility='default' filepath='include/net/cfg80211.h' line='2728' column='1'/>
+          <var-decl name='report_results' type-id='b50a4934' visibility='default' filepath='include/net/cfg80211.h' line='2760' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1216'>
-          <var-decl name='callback_head' type-id='e3d8ce29' visibility='default' filepath='include/net/cfg80211.h' line='2729' column='1'/>
+          <var-decl name='callback_head' type-id='e3d8ce29' visibility='default' filepath='include/net/cfg80211.h' line='2761' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1344'>
-          <var-decl name='owner_nlportid' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='2730' column='1'/>
+          <var-decl name='owner_nlportid' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='2762' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1376'>
-          <var-decl name='nl_owner_dead' type-id='b50a4934' visibility='default' filepath='include/net/cfg80211.h' line='2731' column='1'/>
+          <var-decl name='nl_owner_dead' type-id='b50a4934' visibility='default' filepath='include/net/cfg80211.h' line='2763' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1408'>
-          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/net/cfg80211.h' line='2732' column='1'/>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/net/cfg80211.h' line='2764' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1536'>
-          <var-decl name='android_backport_reserved1' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='2734' column='1'/>
+          <var-decl name='android_backport_reserved1' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='2766' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1600'>
-          <var-decl name='android_backport_reserved2' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='2735' column='1'/>
+          <var-decl name='android_backport_reserved2' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='2767' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1664'>
-          <var-decl name='android_backport_reserved3' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='2736' column='1'/>
+          <var-decl name='android_backport_reserved3' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='2768' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1728'>
-          <var-decl name='android_backport_reserved4' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='2737' column='1'/>
+          <var-decl name='android_backport_reserved4' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='2769' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1792'>
-          <var-decl name='android_vendor_data1' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='2739' column='1'/>
+          <var-decl name='android_vendor_data1' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='2771' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1856'>
-          <var-decl name='android_vendor_data2' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='2740' column='1'/>
+          <var-decl name='android_vendor_data2' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='2772' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1920'>
-          <var-decl name='android_vendor_data3' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='2741' column='1'/>
+          <var-decl name='android_vendor_data3' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='2773' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1984'>
-          <var-decl name='android_vendor_data4' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='2742' column='1'/>
+          <var-decl name='android_vendor_data4' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='2774' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='2048'>
-          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='2744' column='1'/>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='2776' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='2112'>
-          <var-decl name='channels' type-id='14cad687' visibility='default' filepath='include/net/cfg80211.h' line='2747' column='1'/>
+          <var-decl name='channels' type-id='14cad687' visibility='default' filepath='include/net/cfg80211.h' line='2779' column='1'/>
         </data-member>
       </class-decl>
       <typedef-decl name='pgd_t' type-id='36d456a7' filepath='arch/arm64/include/asm/pgtable-types.h' line='39' column='1' id='12aa8ce4'/>
@@ -16431,51 +16524,51 @@
         <enumerator name='HK_FLAG_KTHREAD' value='256'/>
       </enum-decl>
       <pointer-type-def type-id='5f0ccb86' size-in-bits='64' id='174bf37c'/>
-      <class-decl name='cfg80211_wowlan_tcp' size-in-bits='768' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='3421' column='1' id='1752769a'>
+      <class-decl name='cfg80211_wowlan_tcp' size-in-bits='768' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='3453' column='1' id='1752769a'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='sock' type-id='13103032' visibility='default' filepath='include/net/cfg80211.h' line='3422' column='1'/>
+          <var-decl name='sock' type-id='13103032' visibility='default' filepath='include/net/cfg80211.h' line='3454' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='64'>
-          <var-decl name='src' type-id='78a133c2' visibility='default' filepath='include/net/cfg80211.h' line='3423' column='1'/>
+          <var-decl name='src' type-id='78a133c2' visibility='default' filepath='include/net/cfg80211.h' line='3455' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='96'>
-          <var-decl name='dst' type-id='78a133c2' visibility='default' filepath='include/net/cfg80211.h' line='3423' column='1'/>
+          <var-decl name='dst' type-id='78a133c2' visibility='default' filepath='include/net/cfg80211.h' line='3455' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='128'>
-          <var-decl name='src_port' type-id='1dc6a898' visibility='default' filepath='include/net/cfg80211.h' line='3424' column='1'/>
+          <var-decl name='src_port' type-id='1dc6a898' visibility='default' filepath='include/net/cfg80211.h' line='3456' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='144'>
-          <var-decl name='dst_port' type-id='1dc6a898' visibility='default' filepath='include/net/cfg80211.h' line='3424' column='1'/>
+          <var-decl name='dst_port' type-id='1dc6a898' visibility='default' filepath='include/net/cfg80211.h' line='3456' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='160'>
-          <var-decl name='dst_mac' type-id='cf1a4160' visibility='default' filepath='include/net/cfg80211.h' line='3425' column='1'/>
+          <var-decl name='dst_mac' type-id='cf1a4160' visibility='default' filepath='include/net/cfg80211.h' line='3457' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='224'>
-          <var-decl name='payload_len' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='3426' column='1'/>
+          <var-decl name='payload_len' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='3458' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='256'>
-          <var-decl name='payload' type-id='bbaf3419' visibility='default' filepath='include/net/cfg80211.h' line='3427' column='1'/>
+          <var-decl name='payload' type-id='bbaf3419' visibility='default' filepath='include/net/cfg80211.h' line='3459' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='320'>
-          <var-decl name='payload_seq' type-id='d5a1b375' visibility='default' filepath='include/net/cfg80211.h' line='3428' column='1'/>
+          <var-decl name='payload_seq' type-id='d5a1b375' visibility='default' filepath='include/net/cfg80211.h' line='3460' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='416'>
-          <var-decl name='data_interval' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='3429' column='1'/>
+          <var-decl name='data_interval' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='3461' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='448'>
-          <var-decl name='wake_len' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='3430' column='1'/>
+          <var-decl name='wake_len' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='3462' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='512'>
-          <var-decl name='wake_data' type-id='bbaf3419' visibility='default' filepath='include/net/cfg80211.h' line='3431' column='1'/>
+          <var-decl name='wake_data' type-id='bbaf3419' visibility='default' filepath='include/net/cfg80211.h' line='3463' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='576'>
-          <var-decl name='wake_mask' type-id='bbaf3419' visibility='default' filepath='include/net/cfg80211.h' line='3431' column='1'/>
+          <var-decl name='wake_mask' type-id='bbaf3419' visibility='default' filepath='include/net/cfg80211.h' line='3463' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='640'>
-          <var-decl name='tokens_size' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='3432' column='1'/>
+          <var-decl name='tokens_size' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='3464' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='672'>
-          <var-decl name='payload_tok' type-id='2868c21b' visibility='default' filepath='include/net/cfg80211.h' line='3434' column='1'/>
+          <var-decl name='payload_tok' type-id='2868c21b' visibility='default' filepath='include/net/cfg80211.h' line='3466' column='1'/>
         </data-member>
       </class-decl>
       <pointer-type-def type-id='010b0459' size-in-bits='64' id='17580109'/>
@@ -17310,18 +17403,18 @@
         </data-member>
       </class-decl>
       <pointer-type-def type-id='74c76c4a' size-in-bits='64' id='19bc34e4'/>
-      <class-decl name='hid_collection' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/hid.h' line='433' column='1' id='19bef197'>
+      <class-decl name='hid_collection' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/hid.h' line='434' column='1' id='19bef197'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='parent_idx' type-id='95e97e5e' visibility='default' filepath='include/linux/hid.h' line='434' column='1'/>
+          <var-decl name='parent_idx' type-id='95e97e5e' visibility='default' filepath='include/linux/hid.h' line='435' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='32'>
-          <var-decl name='type' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='435' column='1'/>
+          <var-decl name='type' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='436' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='64'>
-          <var-decl name='usage' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='436' column='1'/>
+          <var-decl name='usage' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='437' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='96'>
-          <var-decl name='level' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='437' column='1'/>
+          <var-decl name='level' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='438' column='1'/>
         </data-member>
       </class-decl>
       <function-type size-in-bits='64' id='19bf080d'>
@@ -17822,77 +17915,77 @@
           <var-decl name='base' type-id='58ba85d8' visibility='default' filepath='include/crypto/internal/hash.h' line='59' column='1'/>
         </data-member>
       </class-decl>
-      <class-decl name='usb_driver' size-in-bits='2688' is-struct='yes' visibility='default' filepath='include/linux/usb.h' line='1209' column='1' id='1ab3428c'>
+      <class-decl name='usb_driver' size-in-bits='2688' is-struct='yes' visibility='default' filepath='include/linux/usb.h' line='1212' column='1' id='1ab3428c'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/linux/usb.h' line='1210' column='1'/>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/linux/usb.h' line='1213' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='64'>
-          <var-decl name='probe' type-id='a324decb' visibility='default' filepath='include/linux/usb.h' line='1212' column='1'/>
+          <var-decl name='probe' type-id='a324decb' visibility='default' filepath='include/linux/usb.h' line='1215' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='128'>
-          <var-decl name='disconnect' type-id='b6566954' visibility='default' filepath='include/linux/usb.h' line='1215' column='1'/>
+          <var-decl name='disconnect' type-id='b6566954' visibility='default' filepath='include/linux/usb.h' line='1218' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='192'>
-          <var-decl name='unlocked_ioctl' type-id='52006477' visibility='default' filepath='include/linux/usb.h' line='1217' column='1'/>
+          <var-decl name='unlocked_ioctl' type-id='52006477' visibility='default' filepath='include/linux/usb.h' line='1220' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='256'>
-          <var-decl name='suspend' type-id='31eb8cc0' visibility='default' filepath='include/linux/usb.h' line='1220' column='1'/>
+          <var-decl name='suspend' type-id='31eb8cc0' visibility='default' filepath='include/linux/usb.h' line='1223' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='320'>
-          <var-decl name='resume' type-id='46d1c941' visibility='default' filepath='include/linux/usb.h' line='1221' column='1'/>
+          <var-decl name='resume' type-id='46d1c941' visibility='default' filepath='include/linux/usb.h' line='1224' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='384'>
-          <var-decl name='reset_resume' type-id='46d1c941' visibility='default' filepath='include/linux/usb.h' line='1222' column='1'/>
+          <var-decl name='reset_resume' type-id='46d1c941' visibility='default' filepath='include/linux/usb.h' line='1225' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='448'>
-          <var-decl name='pre_reset' type-id='46d1c941' visibility='default' filepath='include/linux/usb.h' line='1224' column='1'/>
+          <var-decl name='pre_reset' type-id='46d1c941' visibility='default' filepath='include/linux/usb.h' line='1227' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='512'>
-          <var-decl name='post_reset' type-id='46d1c941' visibility='default' filepath='include/linux/usb.h' line='1225' column='1'/>
+          <var-decl name='post_reset' type-id='46d1c941' visibility='default' filepath='include/linux/usb.h' line='1228' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='576'>
-          <var-decl name='id_table' type-id='bc57058f' visibility='default' filepath='include/linux/usb.h' line='1227' column='1'/>
+          <var-decl name='id_table' type-id='bc57058f' visibility='default' filepath='include/linux/usb.h' line='1230' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='640'>
-          <var-decl name='dev_groups' type-id='c97de1ac' visibility='default' filepath='include/linux/usb.h' line='1228' column='1'/>
+          <var-decl name='dev_groups' type-id='c97de1ac' visibility='default' filepath='include/linux/usb.h' line='1231' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='704'>
-          <var-decl name='dynids' type-id='cb08bae1' visibility='default' filepath='include/linux/usb.h' line='1230' column='1'/>
+          <var-decl name='dynids' type-id='cb08bae1' visibility='default' filepath='include/linux/usb.h' line='1233' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='896'>
-          <var-decl name='drvwrap' type-id='33780378' visibility='default' filepath='include/linux/usb.h' line='1231' column='1'/>
+          <var-decl name='drvwrap' type-id='33780378' visibility='default' filepath='include/linux/usb.h' line='1234' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='2368'>
-          <var-decl name='no_dynamic_id' type-id='f0981eeb' visibility='default' filepath='include/linux/usb.h' line='1232' column='1'/>
+          <var-decl name='no_dynamic_id' type-id='f0981eeb' visibility='default' filepath='include/linux/usb.h' line='1235' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='2369'>
-          <var-decl name='supports_autosuspend' type-id='f0981eeb' visibility='default' filepath='include/linux/usb.h' line='1233' column='1'/>
+          <var-decl name='supports_autosuspend' type-id='f0981eeb' visibility='default' filepath='include/linux/usb.h' line='1236' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='2370'>
-          <var-decl name='disable_hub_initiated_lpm' type-id='f0981eeb' visibility='default' filepath='include/linux/usb.h' line='1234' column='1'/>
+          <var-decl name='disable_hub_initiated_lpm' type-id='f0981eeb' visibility='default' filepath='include/linux/usb.h' line='1237' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='2371'>
-          <var-decl name='soft_unbind' type-id='f0981eeb' visibility='default' filepath='include/linux/usb.h' line='1235' column='1'/>
+          <var-decl name='soft_unbind' type-id='f0981eeb' visibility='default' filepath='include/linux/usb.h' line='1238' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='2432'>
-          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/usb.h' line='1237' column='1'/>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/usb.h' line='1240' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='2496'>
-          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/usb.h' line='1238' column='1'/>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/usb.h' line='1241' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='2560'>
-          <var-decl name='android_kabi_reserved3' type-id='91ce1af9' visibility='default' filepath='include/linux/usb.h' line='1239' column='1'/>
+          <var-decl name='android_kabi_reserved3' type-id='91ce1af9' visibility='default' filepath='include/linux/usb.h' line='1242' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='2624'>
-          <var-decl name='android_kabi_reserved4' type-id='91ce1af9' visibility='default' filepath='include/linux/usb.h' line='1240' column='1'/>
+          <var-decl name='android_kabi_reserved4' type-id='91ce1af9' visibility='default' filepath='include/linux/usb.h' line='1243' column='1'/>
         </data-member>
       </class-decl>
-      <class-decl name='cfg80211_sar_freq_ranges' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='2083' column='1' id='1abb753c'>
+      <class-decl name='cfg80211_sar_freq_ranges' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='2115' column='1' id='1abb753c'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='start_freq' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='2084' column='1'/>
+          <var-decl name='start_freq' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='2116' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='32'>
-          <var-decl name='end_freq' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='2085' column='1'/>
+          <var-decl name='end_freq' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='2117' column='1'/>
         </data-member>
       </class-decl>
       <typedef-decl name='seqcount_ww_mutex_t' type-id='b7e534b2' filepath='include/linux/seqlock.h' line='280' column='1' id='1abc0b16'/>
@@ -19342,39 +19435,39 @@
       <pointer-type-def type-id='1beae906' size-in-bits='64' id='1ecd1044'/>
       <pointer-type-def type-id='2922fb19' size-in-bits='64' id='1ed1e4cd'/>
       <pointer-type-def type-id='76959226' size-in-bits='64' id='1ed3660c'/>
-      <class-decl name='iphdr' size-in-bits='160' is-struct='yes' visibility='default' filepath='include/uapi/linux/ip.h' line='86' column='1' id='1edbefa6'>
+      <class-decl name='iphdr' size-in-bits='160' is-struct='yes' visibility='default' filepath='include/uapi/linux/ip.h' line='87' column='1' id='1edbefa6'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='ihl' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/ip.h' line='88' column='1'/>
+          <var-decl name='ihl' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/ip.h' line='89' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='4'>
-          <var-decl name='version' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/ip.h' line='89' column='1'/>
+          <var-decl name='version' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/ip.h' line='90' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='8'>
-          <var-decl name='tos' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/ip.h' line='96' column='1'/>
+          <var-decl name='tos' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/ip.h' line='97' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='16'>
-          <var-decl name='tot_len' type-id='84a5c3d4' visibility='default' filepath='include/uapi/linux/ip.h' line='97' column='1'/>
+          <var-decl name='tot_len' type-id='84a5c3d4' visibility='default' filepath='include/uapi/linux/ip.h' line='98' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='32'>
-          <var-decl name='id' type-id='84a5c3d4' visibility='default' filepath='include/uapi/linux/ip.h' line='98' column='1'/>
+          <var-decl name='id' type-id='84a5c3d4' visibility='default' filepath='include/uapi/linux/ip.h' line='99' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='48'>
-          <var-decl name='frag_off' type-id='84a5c3d4' visibility='default' filepath='include/uapi/linux/ip.h' line='99' column='1'/>
+          <var-decl name='frag_off' type-id='84a5c3d4' visibility='default' filepath='include/uapi/linux/ip.h' line='100' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='64'>
-          <var-decl name='ttl' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/ip.h' line='100' column='1'/>
+          <var-decl name='ttl' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/ip.h' line='101' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='72'>
-          <var-decl name='protocol' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/ip.h' line='101' column='1'/>
+          <var-decl name='protocol' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/ip.h' line='102' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='80'>
-          <var-decl name='check' type-id='7dac1e36' visibility='default' filepath='include/uapi/linux/ip.h' line='102' column='1'/>
+          <var-decl name='check' type-id='7dac1e36' visibility='default' filepath='include/uapi/linux/ip.h' line='103' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='96'>
-          <var-decl name='saddr' type-id='78a133c2' visibility='default' filepath='include/uapi/linux/ip.h' line='103' column='1'/>
+          <var-decl name='saddr' type-id='78a133c2' visibility='default' filepath='include/uapi/linux/ip.h' line='104' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='128'>
-          <var-decl name='daddr' type-id='78a133c2' visibility='default' filepath='include/uapi/linux/ip.h' line='104' column='1'/>
+          <var-decl name='daddr' type-id='78a133c2' visibility='default' filepath='include/uapi/linux/ip.h' line='105' column='1'/>
         </data-member>
       </class-decl>
       <function-type size-in-bits='64' id='1edc0ccb'>
@@ -20384,12 +20477,12 @@
         </data-member>
       </class-decl>
       <pointer-type-def type-id='26527266' size-in-bits='64' id='211c185c'/>
-      <class-decl name='ieee80211_txrx_stypes' size-in-bits='32' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='5098' column='1' id='21301fc9'>
+      <class-decl name='ieee80211_txrx_stypes' size-in-bits='32' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='5153' column='1' id='21301fc9'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='tx' type-id='1dc6a898' visibility='default' filepath='include/net/cfg80211.h' line='5099' column='1'/>
+          <var-decl name='tx' type-id='1dc6a898' visibility='default' filepath='include/net/cfg80211.h' line='5154' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='16'>
-          <var-decl name='rx' type-id='1dc6a898' visibility='default' filepath='include/net/cfg80211.h' line='5099' column='1'/>
+          <var-decl name='rx' type-id='1dc6a898' visibility='default' filepath='include/net/cfg80211.h' line='5154' column='1'/>
         </data-member>
       </class-decl>
       <class-decl name='ppp_channel_ops' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/ppp_channel.h' line='25' column='1' id='2134e0b8'>
@@ -20482,69 +20575,69 @@
           <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='include/drm/drm_flip_work.h' line='79' column='1'/>
         </data-member>
       </class-decl>
-      <class-decl name='hid_driver' size-in-bits='2752' is-struct='yes' visibility='default' filepath='include/linux/hid.h' line='751' column='1' id='2185483d'>
+      <class-decl name='hid_driver' size-in-bits='2752' is-struct='yes' visibility='default' filepath='include/linux/hid.h' line='752' column='1' id='2185483d'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='name' type-id='26a90f95' visibility='default' filepath='include/linux/hid.h' line='752' column='1'/>
+          <var-decl name='name' type-id='26a90f95' visibility='default' filepath='include/linux/hid.h' line='753' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='64'>
-          <var-decl name='id_table' type-id='f499bd02' visibility='default' filepath='include/linux/hid.h' line='753' column='1'/>
+          <var-decl name='id_table' type-id='f499bd02' visibility='default' filepath='include/linux/hid.h' line='754' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='128'>
-          <var-decl name='dyn_list' type-id='72f469ec' visibility='default' filepath='include/linux/hid.h' line='755' column='1'/>
+          <var-decl name='dyn_list' type-id='72f469ec' visibility='default' filepath='include/linux/hid.h' line='756' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='256'>
-          <var-decl name='dyn_lock' type-id='fb4018a0' visibility='default' filepath='include/linux/hid.h' line='756' column='1'/>
+          <var-decl name='dyn_lock' type-id='fb4018a0' visibility='default' filepath='include/linux/hid.h' line='757' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='320'>
-          <var-decl name='match' type-id='5b9f5da4' visibility='default' filepath='include/linux/hid.h' line='758' column='1'/>
+          <var-decl name='match' type-id='5b9f5da4' visibility='default' filepath='include/linux/hid.h' line='759' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='384'>
-          <var-decl name='probe' type-id='078f3b94' visibility='default' filepath='include/linux/hid.h' line='759' column='1'/>
+          <var-decl name='probe' type-id='078f3b94' visibility='default' filepath='include/linux/hid.h' line='760' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='448'>
-          <var-decl name='remove' type-id='5befc19c' visibility='default' filepath='include/linux/hid.h' line='760' column='1'/>
+          <var-decl name='remove' type-id='5befc19c' visibility='default' filepath='include/linux/hid.h' line='761' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='512'>
-          <var-decl name='report_table' type-id='2c4d0ce6' visibility='default' filepath='include/linux/hid.h' line='762' column='1'/>
+          <var-decl name='report_table' type-id='2c4d0ce6' visibility='default' filepath='include/linux/hid.h' line='763' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='576'>
-          <var-decl name='raw_event' type-id='fe3a6ee7' visibility='default' filepath='include/linux/hid.h' line='763' column='1'/>
+          <var-decl name='raw_event' type-id='fe3a6ee7' visibility='default' filepath='include/linux/hid.h' line='764' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='640'>
-          <var-decl name='usage_table' type-id='b473f54b' visibility='default' filepath='include/linux/hid.h' line='765' column='1'/>
+          <var-decl name='usage_table' type-id='b473f54b' visibility='default' filepath='include/linux/hid.h' line='766' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='704'>
-          <var-decl name='event' type-id='8181b8c5' visibility='default' filepath='include/linux/hid.h' line='766' column='1'/>
+          <var-decl name='event' type-id='8181b8c5' visibility='default' filepath='include/linux/hid.h' line='767' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='768'>
-          <var-decl name='report' type-id='e23057dc' visibility='default' filepath='include/linux/hid.h' line='768' column='1'/>
+          <var-decl name='report' type-id='e23057dc' visibility='default' filepath='include/linux/hid.h' line='769' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='832'>
-          <var-decl name='report_fixup' type-id='a4f4a514' visibility='default' filepath='include/linux/hid.h' line='770' column='1'/>
+          <var-decl name='report_fixup' type-id='a4f4a514' visibility='default' filepath='include/linux/hid.h' line='771' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='896'>
-          <var-decl name='input_mapping' type-id='d77ebcbf' visibility='default' filepath='include/linux/hid.h' line='773' column='1'/>
+          <var-decl name='input_mapping' type-id='d77ebcbf' visibility='default' filepath='include/linux/hid.h' line='774' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='960'>
-          <var-decl name='input_mapped' type-id='d77ebcbf' visibility='default' filepath='include/linux/hid.h' line='776' column='1'/>
+          <var-decl name='input_mapped' type-id='d77ebcbf' visibility='default' filepath='include/linux/hid.h' line='777' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1024'>
-          <var-decl name='input_configured' type-id='3e9b5e67' visibility='default' filepath='include/linux/hid.h' line='779' column='1'/>
+          <var-decl name='input_configured' type-id='3e9b5e67' visibility='default' filepath='include/linux/hid.h' line='780' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1088'>
-          <var-decl name='feature_mapping' type-id='2064eae9' visibility='default' filepath='include/linux/hid.h' line='781' column='1'/>
+          <var-decl name='feature_mapping' type-id='2064eae9' visibility='default' filepath='include/linux/hid.h' line='782' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1152'>
-          <var-decl name='suspend' type-id='a4c53922' visibility='default' filepath='include/linux/hid.h' line='785' column='1'/>
+          <var-decl name='suspend' type-id='a4c53922' visibility='default' filepath='include/linux/hid.h' line='786' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1216'>
-          <var-decl name='resume' type-id='7e01f3db' visibility='default' filepath='include/linux/hid.h' line='786' column='1'/>
+          <var-decl name='resume' type-id='7e01f3db' visibility='default' filepath='include/linux/hid.h' line='787' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1280'>
-          <var-decl name='reset_resume' type-id='7e01f3db' visibility='default' filepath='include/linux/hid.h' line='787' column='1'/>
+          <var-decl name='reset_resume' type-id='7e01f3db' visibility='default' filepath='include/linux/hid.h' line='788' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1344'>
-          <var-decl name='driver' type-id='fe007c02' visibility='default' filepath='include/linux/hid.h' line='790' column='1'/>
+          <var-decl name='driver' type-id='fe007c02' visibility='default' filepath='include/linux/hid.h' line='791' column='1'/>
         </data-member>
       </class-decl>
       <class-decl name='nf_ct_udp' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/net/netfilter/nf_conntrack.h' line='29' column='1' id='21861431'>
@@ -21828,6 +21921,14 @@
       </class-decl>
       <pointer-type-def type-id='68f033c6' size-in-bits='64' id='2476e63c'/>
       <pointer-type-def type-id='fba20e52' size-in-bits='64' id='247cd24c'/>
+      <class-decl name='blkg_rwstat' size-in-bits='1920' is-struct='yes' visibility='default' filepath='block/blk-cgroup-rwstat.h' line='26' column='1' id='247d0323'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='cpu_cnt' type-id='68a92070' visibility='default' filepath='block/blk-cgroup-rwstat.h' line='27' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='aux_cnt' type-id='39e531ac' visibility='default' filepath='block/blk-cgroup-rwstat.h' line='28' column='1'/>
+        </data-member>
+      </class-decl>
       <pointer-type-def type-id='df5e8716' size-in-bits='64' id='247dd85c'/>
       <class-decl name='ti_sci_inta_msi_desc' size-in-bits='16' is-struct='yes' visibility='default' filepath='include/linux/msi.h' line='93' column='1' id='248c6527'>
         <data-member access='public' layout-offset-in-bits='0'>
@@ -22876,7 +22977,7 @@
         <parameter type-id='98d7a132'/>
         <return type-id='02ac9d9d'/>
       </function-type>
-      <typedef-decl name='filldir_t' type-id='78efe913' filepath='include/linux/fs.h' line='1992' column='1' id='262124ef'/>
+      <typedef-decl name='filldir_t' type-id='78efe913' filepath='include/linux/fs.h' line='1998' column='1' id='262124ef'/>
       <class-decl name='snd_soc_tplg_vendor_value_elem' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/uapi/sound/asoc.h' line='213' column='1' id='26236645'>
         <data-member access='public' layout-offset-in-bits='0'>
           <var-decl name='token' type-id='2f162548' visibility='default' filepath='include/uapi/sound/asoc.h' line='214' column='1'/>
@@ -23438,7 +23539,7 @@
       <array-type-def dimensions='1' type-id='f0981eeb' size-in-bits='448' id='27cbf0c8'>
         <subrange length='14' type-id='7ff19f0f' id='48882d96'/>
       </array-type-def>
-      <typedef-decl name='dio_submit_t' type-id='6d229cce' filepath='include/linux/fs.h' line='3267' column='1' id='27d499b2'/>
+      <typedef-decl name='dio_submit_t' type-id='6d229cce' filepath='include/linux/fs.h' line='3273' column='1' id='27d499b2'/>
       <pointer-type-def type-id='af1e6651' size-in-bits='64' id='27db53a1'/>
       <class-decl name='snd_soc_dapm_wcache' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/sound/soc-dapm.h' line='682' column='1' id='27dc472b'>
         <data-member access='public' layout-offset-in-bits='0'>
@@ -23732,15 +23833,15 @@
         <parameter type-id='95e97e5e'/>
         <return type-id='48b5725f'/>
       </function-type>
-      <class-decl name='nl80211_wowlan_tcp_data_token' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/uapi/linux/nl80211.h' line='5674' column='1' id='2868c21b'>
+      <class-decl name='nl80211_wowlan_tcp_data_token' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/uapi/linux/nl80211.h' line='5699' column='1' id='2868c21b'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='offset' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/nl80211.h' line='5675' column='1'/>
+          <var-decl name='offset' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/nl80211.h' line='5700' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='32'>
-          <var-decl name='len' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/nl80211.h' line='5675' column='1'/>
+          <var-decl name='len' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/nl80211.h' line='5700' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='64'>
-          <var-decl name='token_stream' type-id='167619f6' visibility='default' filepath='include/uapi/linux/nl80211.h' line='5676' column='1'/>
+          <var-decl name='token_stream' type-id='167619f6' visibility='default' filepath='include/uapi/linux/nl80211.h' line='5701' column='1'/>
         </data-member>
       </class-decl>
       <pointer-type-def type-id='a87c488a' size-in-bits='64' id='2869bb38'/>
@@ -24598,6 +24699,7 @@
         </data-member>
       </class-decl>
       <pointer-type-def type-id='557c51cd' size-in-bits='64' id='29e425c9'/>
+      <qualified-type-def type-id='3713d87e' const='yes' id='29e79c3f'/>
       <pointer-type-def type-id='964819d7' size-in-bits='64' id='29f0ac2f'/>
       <class-decl name='icc_req' size-in-bits='384' is-struct='yes' visibility='default' filepath='drivers/interconnect/internal.h' line='22' column='1' id='29f471c5'>
         <data-member access='public' layout-offset-in-bits='0'>
@@ -26589,69 +26691,69 @@
       </function-type>
       <pointer-type-def type-id='676b848c' size-in-bits='64' id='2f4512ea'/>
       <pointer-type-def type-id='7364da7b' size-in-bits='64' id='2f59f71f'/>
-      <class-decl name='file_system_type' size-in-bits='832' is-struct='yes' visibility='default' filepath='include/linux/fs.h' line='2507' column='1' id='2f5a60be'>
+      <class-decl name='file_system_type' size-in-bits='832' is-struct='yes' visibility='default' filepath='include/linux/fs.h' line='2513' column='1' id='2f5a60be'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/linux/fs.h' line='2508' column='1'/>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/linux/fs.h' line='2514' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='64'>
-          <var-decl name='fs_flags' type-id='95e97e5e' visibility='default' filepath='include/linux/fs.h' line='2509' column='1'/>
+          <var-decl name='fs_flags' type-id='95e97e5e' visibility='default' filepath='include/linux/fs.h' line='2515' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='128'>
-          <var-decl name='init_fs_context' type-id='57f0383a' visibility='default' filepath='include/linux/fs.h' line='2518' column='1'/>
+          <var-decl name='init_fs_context' type-id='57f0383a' visibility='default' filepath='include/linux/fs.h' line='2524' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='192'>
-          <var-decl name='parameters' type-id='8d4f223b' visibility='default' filepath='include/linux/fs.h' line='2519' column='1'/>
+          <var-decl name='parameters' type-id='8d4f223b' visibility='default' filepath='include/linux/fs.h' line='2525' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='256'>
-          <var-decl name='mount' type-id='d9394db1' visibility='default' filepath='include/linux/fs.h' line='2520' column='1'/>
+          <var-decl name='mount' type-id='d9394db1' visibility='default' filepath='include/linux/fs.h' line='2526' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='320'>
-          <var-decl name='kill_sb' type-id='1ff54a45' visibility='default' filepath='include/linux/fs.h' line='2522' column='1'/>
+          <var-decl name='kill_sb' type-id='1ff54a45' visibility='default' filepath='include/linux/fs.h' line='2528' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='384'>
-          <var-decl name='owner' type-id='2730d015' visibility='default' filepath='include/linux/fs.h' line='2523' column='1'/>
+          <var-decl name='owner' type-id='2730d015' visibility='default' filepath='include/linux/fs.h' line='2529' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='448'>
-          <var-decl name='next' type-id='21e53d44' visibility='default' filepath='include/linux/fs.h' line='2524' column='1'/>
+          <var-decl name='next' type-id='21e53d44' visibility='default' filepath='include/linux/fs.h' line='2530' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='512'>
-          <var-decl name='fs_supers' type-id='e151255a' visibility='default' filepath='include/linux/fs.h' line='2525' column='1'/>
+          <var-decl name='fs_supers' type-id='e151255a' visibility='default' filepath='include/linux/fs.h' line='2531' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='576'>
-          <var-decl name='s_lock_key' type-id='47479831' visibility='default' filepath='include/linux/fs.h' line='2527' column='1'/>
+          <var-decl name='s_lock_key' type-id='47479831' visibility='default' filepath='include/linux/fs.h' line='2533' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='576'>
-          <var-decl name='s_umount_key' type-id='47479831' visibility='default' filepath='include/linux/fs.h' line='2528' column='1'/>
+          <var-decl name='s_umount_key' type-id='47479831' visibility='default' filepath='include/linux/fs.h' line='2534' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='576'>
-          <var-decl name='s_vfs_rename_key' type-id='47479831' visibility='default' filepath='include/linux/fs.h' line='2529' column='1'/>
+          <var-decl name='s_vfs_rename_key' type-id='47479831' visibility='default' filepath='include/linux/fs.h' line='2535' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='576'>
-          <var-decl name='s_writers_key' type-id='9c02e2a6' visibility='default' filepath='include/linux/fs.h' line='2530' column='1'/>
+          <var-decl name='s_writers_key' type-id='9c02e2a6' visibility='default' filepath='include/linux/fs.h' line='2536' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='576'>
-          <var-decl name='i_lock_key' type-id='47479831' visibility='default' filepath='include/linux/fs.h' line='2532' column='1'/>
+          <var-decl name='i_lock_key' type-id='47479831' visibility='default' filepath='include/linux/fs.h' line='2538' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='576'>
-          <var-decl name='i_mutex_key' type-id='47479831' visibility='default' filepath='include/linux/fs.h' line='2533' column='1'/>
+          <var-decl name='i_mutex_key' type-id='47479831' visibility='default' filepath='include/linux/fs.h' line='2539' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='576'>
-          <var-decl name='invalidate_lock_key' type-id='47479831' visibility='default' filepath='include/linux/fs.h' line='2534' column='1'/>
+          <var-decl name='invalidate_lock_key' type-id='47479831' visibility='default' filepath='include/linux/fs.h' line='2540' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='576'>
-          <var-decl name='i_mutex_dir_key' type-id='47479831' visibility='default' filepath='include/linux/fs.h' line='2535' column='1'/>
+          <var-decl name='i_mutex_dir_key' type-id='47479831' visibility='default' filepath='include/linux/fs.h' line='2541' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='576'>
-          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='2537' column='1'/>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='2543' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='640'>
-          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='2538' column='1'/>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='2544' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='704'>
-          <var-decl name='android_kabi_reserved3' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='2539' column='1'/>
+          <var-decl name='android_kabi_reserved3' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='2545' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='768'>
-          <var-decl name='android_kabi_reserved4' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='2540' column='1'/>
+          <var-decl name='android_kabi_reserved4' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='2546' column='1'/>
         </data-member>
       </class-decl>
       <class-decl name='skcipher_instance' size-in-bits='6144' is-struct='yes' visibility='default' filepath='include/crypto/internal/skcipher.h' line='20' column='1' id='2f61a822'>
@@ -27196,6 +27298,7 @@
       </class-decl>
       <typedef-decl name='__s32' type-id='95e97e5e' filepath='include/uapi/asm-generic/int-ll64.h' line='26' column='1' id='3158a266'/>
       <pointer-type-def type-id='6ae7a739' size-in-bits='64' id='3168497d'/>
+      <pointer-type-def type-id='12878ab3' size-in-bits='64' id='316cdcd3'/>
       <class-decl name='key_tag' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/key.h' line='102' column='1' id='3173bc57'>
         <data-member access='public' layout-offset-in-bits='0'>
           <var-decl name='rcu' type-id='e3d8ce29' visibility='default' filepath='include/linux/key.h' line='103' column='1'/>
@@ -27595,6 +27698,9 @@
         <parameter type-id='3837ac61'/>
         <return type-id='95e97e5e'/>
       </function-type>
+      <array-type-def dimensions='1' type-id='ea86de29' size-in-bits='128' id='32625dbc'>
+        <subrange length='16' type-id='7ff19f0f' id='848d0938'/>
+      </array-type-def>
       <function-type size-in-bits='64' id='32672900'>
         <parameter type-id='a47d3467'/>
         <parameter type-id='298d0a77'/>
@@ -28005,12 +28111,12 @@
         <parameter type-id='68a2d05b'/>
         <return type-id='68a2d05b'/>
       </function-type>
-      <class-decl name='usbdrv_wrap' size-in-bits='1472' is-struct='yes' visibility='default' filepath='include/linux/usb.h' line='1138' column='1' id='33780378'>
+      <class-decl name='usbdrv_wrap' size-in-bits='1472' is-struct='yes' visibility='default' filepath='include/linux/usb.h' line='1141' column='1' id='33780378'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='driver' type-id='fe007c02' visibility='default' filepath='include/linux/usb.h' line='1139' column='1'/>
+          <var-decl name='driver' type-id='fe007c02' visibility='default' filepath='include/linux/usb.h' line='1142' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1408'>
-          <var-decl name='for_devices' type-id='95e97e5e' visibility='default' filepath='include/linux/usb.h' line='1140' column='1'/>
+          <var-decl name='for_devices' type-id='95e97e5e' visibility='default' filepath='include/linux/usb.h' line='1143' column='1'/>
         </data-member>
       </class-decl>
       <function-type size-in-bits='64' id='337862e8'>
@@ -29067,6 +29173,11 @@
       <array-type-def dimensions='1' type-id='55f9b227' size-in-bits='65536' id='370ec9f4'>
         <subrange length='256' type-id='7ff19f0f' id='36e5b9fa'/>
       </array-type-def>
+      <class-decl name='blkg_rwstat_sample' size-in-bits='320' is-struct='yes' visibility='default' filepath='block/blk-cgroup-rwstat.h' line='31' column='1' id='3713d87e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='cnt' type-id='64af1365' visibility='default' filepath='block/blk-cgroup-rwstat.h' line='32' column='1'/>
+        </data-member>
+      </class-decl>
       <pointer-type-def type-id='6703ad9d' size-in-bits='64' id='37175e4d'/>
       <pointer-type-def type-id='cfe09901' size-in-bits='64' id='37191bbd'/>
       <function-type size-in-bits='64' id='371f2e98'>
@@ -29175,18 +29286,18 @@
           <var-decl name='cache_order' type-id='f0981eeb' visibility='default' filepath='mm/slab.h' line='206' column='1'/>
         </data-member>
       </class-decl>
-      <class-decl name='wiphy_iftype_ext_capab' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='5270' column='1' id='378a6c5a'>
+      <class-decl name='wiphy_iftype_ext_capab' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='5325' column='1' id='378a6c5a'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='iftype' type-id='86505f90' visibility='default' filepath='include/net/cfg80211.h' line='5271' column='1'/>
+          <var-decl name='iftype' type-id='86505f90' visibility='default' filepath='include/net/cfg80211.h' line='5326' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='64'>
-          <var-decl name='extended_capabilities' type-id='bbaf3419' visibility='default' filepath='include/net/cfg80211.h' line='5272' column='1'/>
+          <var-decl name='extended_capabilities' type-id='bbaf3419' visibility='default' filepath='include/net/cfg80211.h' line='5327' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='128'>
-          <var-decl name='extended_capabilities_mask' type-id='bbaf3419' visibility='default' filepath='include/net/cfg80211.h' line='5273' column='1'/>
+          <var-decl name='extended_capabilities_mask' type-id='bbaf3419' visibility='default' filepath='include/net/cfg80211.h' line='5328' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='192'>
-          <var-decl name='extended_capabilities_len' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5274' column='1'/>
+          <var-decl name='extended_capabilities_len' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5329' column='1'/>
         </data-member>
       </class-decl>
       <function-type size-in-bits='64' id='378c144b'>
@@ -29214,6 +29325,17 @@
           <var-decl name='offset' type-id='b469d7a7' visibility='default' filepath='include/net/flow_dissector.h' line='301' column='1'/>
         </data-member>
       </class-decl>
+      <class-decl name='blkg_conf_ctx' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/blk-cgroup.h' line='205' column='1' id='379ef9aa'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='bdev' type-id='b88dd945' visibility='default' filepath='include/linux/blk-cgroup.h' line='206' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='blkg' type-id='1146dea3' visibility='default' filepath='include/linux/blk-cgroup.h' line='207' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='body' type-id='26a90f95' visibility='default' filepath='include/linux/blk-cgroup.h' line='208' column='1'/>
+        </data-member>
+      </class-decl>
       <class-decl name='cgroup_file' size-in-bits='576' is-struct='yes' visibility='default' filepath='include/linux/cgroup-defs.h' line='128' column='1' id='37a4ee40'>
         <data-member access='public' layout-offset-in-bits='0'>
           <var-decl name='kn' type-id='150efd3f' visibility='default' filepath='include/linux/cgroup-defs.h' line='130' column='1'/>
@@ -29654,12 +29776,12 @@
       <pointer-type-def type-id='c8c25625' size-in-bits='64' id='390f38a5'/>
       <pointer-type-def type-id='754a5cbf' size-in-bits='64' id='390fbe8f'/>
       <pointer-type-def type-id='d35840cd' size-in-bits='64' id='391871d1'/>
-      <class-decl name='cfg80211_sched_scan_plan' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='2635' column='1' id='391881a9'>
+      <class-decl name='cfg80211_sched_scan_plan' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='2667' column='1' id='391881a9'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='interval' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='2636' column='1'/>
+          <var-decl name='interval' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='2668' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='32'>
-          <var-decl name='iterations' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='2637' column='1'/>
+          <var-decl name='iterations' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='2669' column='1'/>
         </data-member>
       </class-decl>
       <class-decl name='usb_device_id' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/mod_devicetable.h' line='127' column='1' id='391a9024'>
@@ -30269,6 +30391,9 @@
         </data-member>
       </class-decl>
       <pointer-type-def type-id='bed27c38' size-in-bits='64' id='39e52da2'/>
+      <array-type-def dimensions='1' type-id='28ee064c' size-in-bits='320' id='39e531ac'>
+        <subrange length='5' type-id='7ff19f0f' id='53010e10'/>
+      </array-type-def>
       <array-type-def dimensions='1' type-id='0f8f80b0' size-in-bits='384' id='39e8b9c8'>
         <subrange length='6' type-id='7ff19f0f' id='52fa524b'/>
       </array-type-def>
@@ -31605,156 +31730,156 @@
       </class-decl>
       <pointer-type-def type-id='46eaf6b3' size-in-bits='64' id='3ce232db'/>
       <pointer-type-def type-id='c21690c0' size-in-bits='64' id='3ce3447a'/>
-      <class-decl name='wireless_dev' size-in-bits='19072' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='6031' column='1' id='3ce3a3e9'>
+      <class-decl name='wireless_dev' size-in-bits='19072' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='6086' column='1' id='3ce3a3e9'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='wiphy' type-id='666fb412' visibility='default' filepath='include/net/cfg80211.h' line='6032' column='1'/>
+          <var-decl name='wiphy' type-id='666fb412' visibility='default' filepath='include/net/cfg80211.h' line='6087' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='64'>
-          <var-decl name='iftype' type-id='86505f90' visibility='default' filepath='include/net/cfg80211.h' line='6033' column='1'/>
+          <var-decl name='iftype' type-id='86505f90' visibility='default' filepath='include/net/cfg80211.h' line='6088' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='128'>
-          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/net/cfg80211.h' line='6036' column='1'/>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/net/cfg80211.h' line='6091' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='256'>
-          <var-decl name='netdev' type-id='68a2d05b' visibility='default' filepath='include/net/cfg80211.h' line='6037' column='1'/>
+          <var-decl name='netdev' type-id='68a2d05b' visibility='default' filepath='include/net/cfg80211.h' line='6092' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='320'>
-          <var-decl name='identifier' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='6039' column='1'/>
+          <var-decl name='identifier' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='6094' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='384'>
-          <var-decl name='mgmt_registrations' type-id='72f469ec' visibility='default' filepath='include/net/cfg80211.h' line='6041' column='1'/>
+          <var-decl name='mgmt_registrations' type-id='72f469ec' visibility='default' filepath='include/net/cfg80211.h' line='6096' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='512'>
-          <var-decl name='mgmt_registrations_need_update' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='6042' column='1'/>
+          <var-decl name='mgmt_registrations_need_update' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='6097' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='576'>
-          <var-decl name='mtx' type-id='925167dc' visibility='default' filepath='include/net/cfg80211.h' line='6044' column='1'/>
+          <var-decl name='mtx' type-id='925167dc' visibility='default' filepath='include/net/cfg80211.h' line='6099' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='960'>
-          <var-decl name='use_4addr' type-id='b50a4934' visibility='default' filepath='include/net/cfg80211.h' line='6046' column='1'/>
+          <var-decl name='use_4addr' type-id='b50a4934' visibility='default' filepath='include/net/cfg80211.h' line='6101' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='968'>
-          <var-decl name='is_running' type-id='b50a4934' visibility='default' filepath='include/net/cfg80211.h' line='6046' column='1'/>
+          <var-decl name='is_running' type-id='b50a4934' visibility='default' filepath='include/net/cfg80211.h' line='6101' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='976'>
-          <var-decl name='registered' type-id='b50a4934' visibility='default' filepath='include/net/cfg80211.h' line='6046' column='1'/>
+          <var-decl name='registered' type-id='b50a4934' visibility='default' filepath='include/net/cfg80211.h' line='6101' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='984'>
-          <var-decl name='registering' type-id='b50a4934' visibility='default' filepath='include/net/cfg80211.h' line='6046' column='1'/>
+          <var-decl name='registering' type-id='b50a4934' visibility='default' filepath='include/net/cfg80211.h' line='6101' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='992'>
-          <var-decl name='address' type-id='cf1a4160' visibility='default' filepath='include/net/cfg80211.h' line='6048' column='1'/>
+          <var-decl name='address' type-id='cf1a4160' visibility='default' filepath='include/net/cfg80211.h' line='6103' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1088'>
-          <var-decl name='conn' type-id='6dbc8e18' visibility='default' filepath='include/net/cfg80211.h' line='6051' column='1'/>
+          <var-decl name='conn' type-id='6dbc8e18' visibility='default' filepath='include/net/cfg80211.h' line='6106' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1152'>
-          <var-decl name='connect_keys' type-id='561a36db' visibility='default' filepath='include/net/cfg80211.h' line='6052' column='1'/>
+          <var-decl name='connect_keys' type-id='561a36db' visibility='default' filepath='include/net/cfg80211.h' line='6107' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1216'>
-          <var-decl name='conn_bss_type' type-id='cb952348' visibility='default' filepath='include/net/cfg80211.h' line='6053' column='1'/>
+          <var-decl name='conn_bss_type' type-id='cb952348' visibility='default' filepath='include/net/cfg80211.h' line='6108' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1248'>
-          <var-decl name='conn_owner_nlportid' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='6054' column='1'/>
+          <var-decl name='conn_owner_nlportid' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='6109' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1280'>
-          <var-decl name='disconnect_wk' type-id='ef9025d0' visibility='default' filepath='include/net/cfg80211.h' line='6056' column='1'/>
+          <var-decl name='disconnect_wk' type-id='ef9025d0' visibility='default' filepath='include/net/cfg80211.h' line='6111' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1664'>
-          <var-decl name='disconnect_bssid' type-id='cf1a4160' visibility='default' filepath='include/net/cfg80211.h' line='6057' column='1'/>
+          <var-decl name='disconnect_bssid' type-id='cf1a4160' visibility='default' filepath='include/net/cfg80211.h' line='6112' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1728'>
-          <var-decl name='event_list' type-id='72f469ec' visibility='default' filepath='include/net/cfg80211.h' line='6059' column='1'/>
+          <var-decl name='event_list' type-id='72f469ec' visibility='default' filepath='include/net/cfg80211.h' line='6114' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1856'>
-          <var-decl name='event_lock' type-id='fb4018a0' visibility='default' filepath='include/net/cfg80211.h' line='6060' column='1'/>
+          <var-decl name='event_lock' type-id='fb4018a0' visibility='default' filepath='include/net/cfg80211.h' line='6115' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1888'>
-          <var-decl name='connected' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='6062' column='1'/>
+          <var-decl name='connected' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='6117' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1896'>
-          <var-decl name='ps' type-id='b50a4934' visibility='default' filepath='include/net/cfg80211.h' line='6064' column='1'/>
+          <var-decl name='ps' type-id='b50a4934' visibility='default' filepath='include/net/cfg80211.h' line='6119' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1920'>
-          <var-decl name='ps_timeout' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='6065' column='1'/>
+          <var-decl name='ps_timeout' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='6120' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1952'>
-          <var-decl name='ap_unexpected_nlportid' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='6067' column='1'/>
+          <var-decl name='ap_unexpected_nlportid' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='6122' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1984'>
-          <var-decl name='owner_nlportid' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='6069' column='1'/>
+          <var-decl name='owner_nlportid' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='6124' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='2016'>
-          <var-decl name='nl_owner_dead' type-id='b50a4934' visibility='default' filepath='include/net/cfg80211.h' line='6070' column='1'/>
+          <var-decl name='nl_owner_dead' type-id='b50a4934' visibility='default' filepath='include/net/cfg80211.h' line='6125' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='2024'>
-          <var-decl name='cac_started' type-id='b50a4934' visibility='default' filepath='include/net/cfg80211.h' line='6073' column='1'/>
+          <var-decl name='cac_started' type-id='b50a4934' visibility='default' filepath='include/net/cfg80211.h' line='6128' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='2048'>
-          <var-decl name='cac_start_time' type-id='7359adad' visibility='default' filepath='include/net/cfg80211.h' line='6074' column='1'/>
+          <var-decl name='cac_start_time' type-id='7359adad' visibility='default' filepath='include/net/cfg80211.h' line='6129' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='2112'>
-          <var-decl name='cac_time_ms' type-id='f0981eeb' visibility='default' filepath='include/net/cfg80211.h' line='6075' column='1'/>
+          <var-decl name='cac_time_ms' type-id='f0981eeb' visibility='default' filepath='include/net/cfg80211.h' line='6130' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='2176'>
-          <var-decl name='cqm_config' type-id='ee527710' visibility='default' filepath='include/net/cfg80211.h' line='6093' column='1'/>
+          <var-decl name='cqm_config' type-id='ee527710' visibility='default' filepath='include/net/cfg80211.h' line='6148' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='2240'>
-          <var-decl name='pmsr_list' type-id='72f469ec' visibility='default' filepath='include/net/cfg80211.h' line='6095' column='1'/>
+          <var-decl name='pmsr_list' type-id='72f469ec' visibility='default' filepath='include/net/cfg80211.h' line='6150' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='2368'>
-          <var-decl name='pmsr_lock' type-id='fb4018a0' visibility='default' filepath='include/net/cfg80211.h' line='6096' column='1'/>
+          <var-decl name='pmsr_lock' type-id='fb4018a0' visibility='default' filepath='include/net/cfg80211.h' line='6151' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='2432'>
-          <var-decl name='pmsr_free_wk' type-id='ef9025d0' visibility='default' filepath='include/net/cfg80211.h' line='6097' column='1'/>
+          <var-decl name='pmsr_free_wk' type-id='ef9025d0' visibility='default' filepath='include/net/cfg80211.h' line='6152' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='2816'>
-          <var-decl name='unprot_beacon_reported' type-id='7359adad' visibility='default' filepath='include/net/cfg80211.h' line='6099' column='1'/>
+          <var-decl name='unprot_beacon_reported' type-id='7359adad' visibility='default' filepath='include/net/cfg80211.h' line='6154' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='2880'>
-          <var-decl name='u' type-id='ac5ab688' visibility='default' filepath='include/net/cfg80211.h' line='6129' column='1'/>
+          <var-decl name='u' type-id='ac5ab688' visibility='default' filepath='include/net/cfg80211.h' line='6184' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='4800'>
-          <var-decl name='links' type-id='4cb7c55c' visibility='default' filepath='include/net/cfg80211.h' line='6142' column='1'/>
+          <var-decl name='links' type-id='4cb7c55c' visibility='default' filepath='include/net/cfg80211.h' line='6197' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='18240'>
-          <var-decl name='valid_links' type-id='1dc6a898' visibility='default' filepath='include/net/cfg80211.h' line='6143' column='1'/>
+          <var-decl name='valid_links' type-id='1dc6a898' visibility='default' filepath='include/net/cfg80211.h' line='6198' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='18304'>
-          <var-decl name='android_backport_reserved1' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='6145' column='1'/>
+          <var-decl name='android_backport_reserved1' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='6200' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='18368'>
-          <var-decl name='android_backport_reserved2' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='6146' column='1'/>
+          <var-decl name='android_backport_reserved2' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='6201' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='18432'>
-          <var-decl name='android_backport_reserved3' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='6147' column='1'/>
+          <var-decl name='android_backport_reserved3' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='6202' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='18496'>
-          <var-decl name='android_backport_reserved4' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='6148' column='1'/>
+          <var-decl name='android_backport_reserved4' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='6203' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='18560'>
-          <var-decl name='android_backport_reserved5' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='6149' column='1'/>
+          <var-decl name='android_backport_reserved5' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='6204' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='18624'>
-          <var-decl name='android_vendor_data1' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='6151' column='1'/>
+          <var-decl name='android_vendor_data1' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='6206' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='18688'>
-          <var-decl name='android_vendor_data2' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='6152' column='1'/>
+          <var-decl name='android_vendor_data2' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='6207' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='18752'>
-          <var-decl name='android_vendor_data3' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='6153' column='1'/>
+          <var-decl name='android_vendor_data3' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='6208' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='18816'>
-          <var-decl name='android_vendor_data4' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='6154' column='1'/>
+          <var-decl name='android_vendor_data4' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='6209' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='18880'>
-          <var-decl name='android_vendor_data5' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='6155' column='1'/>
+          <var-decl name='android_vendor_data5' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='6210' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='18944'>
-          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='6157' column='1'/>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='6212' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='19008'>
-          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='6158' column='1'/>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='6213' column='1'/>
         </data-member>
       </class-decl>
       <class-decl name='coupling_desc' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/regulator/driver.h' line='591' column='1' id='3ce445fe'>
@@ -32324,7 +32449,7 @@
           <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/pm.h' line='303' column='1'/>
         </data-member>
       </class-decl>
-      <enum-decl name='nl80211_band' filepath='include/uapi/linux/nl80211.h' line='5270' column='1' id='3eaa0294'>
+      <enum-decl name='nl80211_band' filepath='include/uapi/linux/nl80211.h' line='5295' column='1' id='3eaa0294'>
         <underlying-type type-id='9cac1fee'/>
         <enumerator name='NL80211_BAND_2GHZ' value='0'/>
         <enumerator name='NL80211_BAND_5GHZ' value='1'/>
@@ -32473,69 +32598,69 @@
         <subrange length='infinite' type-id='7ff19f0f' id='031f2035'/>
       </array-type-def>
       <pointer-type-def type-id='8b28624a' size-in-bits='64' id='3ed0c5ec'/>
-      <class-decl name='hid_field' size-in-bits='896' is-struct='yes' visibility='default' filepath='include/linux/hid.h' line='458' column='1' id='3ede3949'>
+      <class-decl name='hid_field' size-in-bits='896' is-struct='yes' visibility='default' filepath='include/linux/hid.h' line='459' column='1' id='3ede3949'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='physical' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='459' column='1'/>
+          <var-decl name='physical' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='460' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='32'>
-          <var-decl name='logical' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='460' column='1'/>
+          <var-decl name='logical' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='461' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='64'>
-          <var-decl name='application' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='461' column='1'/>
+          <var-decl name='application' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='462' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='128'>
-          <var-decl name='usage' type-id='d586c6cc' visibility='default' filepath='include/linux/hid.h' line='462' column='1'/>
+          <var-decl name='usage' type-id='d586c6cc' visibility='default' filepath='include/linux/hid.h' line='463' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='192'>
-          <var-decl name='maxusage' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='463' column='1'/>
+          <var-decl name='maxusage' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='464' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='224'>
-          <var-decl name='flags' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='464' column='1'/>
+          <var-decl name='flags' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='465' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='256'>
-          <var-decl name='report_offset' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='465' column='1'/>
+          <var-decl name='report_offset' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='466' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='288'>
-          <var-decl name='report_size' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='466' column='1'/>
+          <var-decl name='report_size' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='467' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='320'>
-          <var-decl name='report_count' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='467' column='1'/>
+          <var-decl name='report_count' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='468' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='352'>
-          <var-decl name='report_type' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='468' column='1'/>
+          <var-decl name='report_type' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='469' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='384'>
-          <var-decl name='value' type-id='a5f29c61' visibility='default' filepath='include/linux/hid.h' line='469' column='1'/>
+          <var-decl name='value' type-id='a5f29c61' visibility='default' filepath='include/linux/hid.h' line='470' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='448'>
-          <var-decl name='logical_minimum' type-id='3158a266' visibility='default' filepath='include/linux/hid.h' line='470' column='1'/>
+          <var-decl name='logical_minimum' type-id='3158a266' visibility='default' filepath='include/linux/hid.h' line='471' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='480'>
-          <var-decl name='logical_maximum' type-id='3158a266' visibility='default' filepath='include/linux/hid.h' line='471' column='1'/>
+          <var-decl name='logical_maximum' type-id='3158a266' visibility='default' filepath='include/linux/hid.h' line='472' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='512'>
-          <var-decl name='physical_minimum' type-id='3158a266' visibility='default' filepath='include/linux/hid.h' line='472' column='1'/>
+          <var-decl name='physical_minimum' type-id='3158a266' visibility='default' filepath='include/linux/hid.h' line='473' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='544'>
-          <var-decl name='physical_maximum' type-id='3158a266' visibility='default' filepath='include/linux/hid.h' line='473' column='1'/>
+          <var-decl name='physical_maximum' type-id='3158a266' visibility='default' filepath='include/linux/hid.h' line='474' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='576'>
-          <var-decl name='unit_exponent' type-id='3158a266' visibility='default' filepath='include/linux/hid.h' line='474' column='1'/>
+          <var-decl name='unit_exponent' type-id='3158a266' visibility='default' filepath='include/linux/hid.h' line='475' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='608'>
-          <var-decl name='unit' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='475' column='1'/>
+          <var-decl name='unit' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='476' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='640'>
-          <var-decl name='report' type-id='5b4284d1' visibility='default' filepath='include/linux/hid.h' line='476' column='1'/>
+          <var-decl name='report' type-id='5b4284d1' visibility='default' filepath='include/linux/hid.h' line='477' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='704'>
-          <var-decl name='index' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='477' column='1'/>
+          <var-decl name='index' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='478' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='768'>
-          <var-decl name='hidinput' type-id='b548c585' visibility='default' filepath='include/linux/hid.h' line='479' column='1'/>
+          <var-decl name='hidinput' type-id='b548c585' visibility='default' filepath='include/linux/hid.h' line='480' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='832'>
-          <var-decl name='dpad' type-id='d315442e' visibility='default' filepath='include/linux/hid.h' line='480' column='1'/>
+          <var-decl name='dpad' type-id='d315442e' visibility='default' filepath='include/linux/hid.h' line='481' column='1'/>
         </data-member>
       </class-decl>
       <pointer-type-def type-id='47308153' size-in-bits='64' id='3eef3bc7'/>
@@ -32592,18 +32717,18 @@
       </function-type>
       <pointer-type-def type-id='bf3ef905' size-in-bits='64' id='3f2244fd'/>
       <pointer-type-def type-id='c3b52303' size-in-bits='64' id='3f26598b'/>
-      <class-decl name='irqtime' size-in-bits='192' is-struct='yes' visibility='default' filepath='kernel/sched/sched.h' line='2862' column='1' id='3f278a28'>
+      <class-decl name='irqtime' size-in-bits='192' is-struct='yes' visibility='default' filepath='kernel/sched/sched.h' line='2836' column='1' id='3f278a28'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='total' type-id='91ce1af9' visibility='default' filepath='kernel/sched/sched.h' line='2863' column='1'/>
+          <var-decl name='total' type-id='91ce1af9' visibility='default' filepath='kernel/sched/sched.h' line='2837' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='64'>
-          <var-decl name='tick_delta' type-id='91ce1af9' visibility='default' filepath='kernel/sched/sched.h' line='2864' column='1'/>
+          <var-decl name='tick_delta' type-id='91ce1af9' visibility='default' filepath='kernel/sched/sched.h' line='2838' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='128'>
-          <var-decl name='irq_start_time' type-id='91ce1af9' visibility='default' filepath='kernel/sched/sched.h' line='2865' column='1'/>
+          <var-decl name='irq_start_time' type-id='91ce1af9' visibility='default' filepath='kernel/sched/sched.h' line='2839' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='192'>
-          <var-decl name='sync' type-id='e4d85780' visibility='default' filepath='kernel/sched/sched.h' line='2866' column='1'/>
+          <var-decl name='sync' type-id='e4d85780' visibility='default' filepath='kernel/sched/sched.h' line='2840' column='1'/>
         </data-member>
       </class-decl>
       <pointer-type-def type-id='849373e7' size-in-bits='64' id='3f29b13b'/>
@@ -33406,7 +33531,7 @@
         </data-member>
       </class-decl>
       <pointer-type-def type-id='aaa8d90f' size-in-bits='64' id='40825cfb'/>
-      <typedef-decl name='usb_complete_t' type-id='79dbccfb' filepath='include/linux/usb.h' line='1404' column='1' id='4086973b'/>
+      <typedef-decl name='usb_complete_t' type-id='79dbccfb' filepath='include/linux/usb.h' line='1407' column='1' id='4086973b'/>
       <function-type size-in-bits='64' id='40877b8a'>
         <parameter type-id='abd62a96'/>
         <return type-id='95e97e5e'/>
@@ -35308,6 +35433,7 @@
         </data-member>
       </class-decl>
       <pointer-type-def type-id='855e3679' size-in-bits='64' id='464f84a9'/>
+      <pointer-type-def type-id='80b5c3cd' size-in-bits='64' id='46530b39'/>
       <class-decl name='wake_irq' size-in-bits='192' is-struct='yes' visibility='default' filepath='drivers/base/power/power.h' line='31' column='1' id='4657336c'>
         <data-member access='public' layout-offset-in-bits='0'>
           <var-decl name='dev' type-id='fa0b179b' visibility='default' filepath='drivers/base/power/power.h' line='32' column='1'/>
@@ -35821,66 +35947,66 @@
           <var-decl name='incr' type-id='91ce1af9' visibility='default' filepath='include/linux/sched/signal.h' line='41' column='1'/>
         </data-member>
       </class-decl>
-      <class-decl name='gs_port' size-in-bits='6016' is-struct='yes' visibility='default' filepath='drivers/usb/gadget/function/u_serial.c' line='98' column='1' id='4788f063'>
+      <class-decl name='gs_port' size-in-bits='6016' is-struct='yes' visibility='default' filepath='drivers/usb/gadget/function/u_serial.c' line='101' column='1' id='4788f063'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='port' type-id='7e1e521a' visibility='default' filepath='drivers/usb/gadget/function/u_serial.c' line='99' column='1'/>
+          <var-decl name='port' type-id='7e1e521a' visibility='default' filepath='drivers/usb/gadget/function/u_serial.c' line='102' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='3392'>
-          <var-decl name='port_lock' type-id='fb4018a0' visibility='default' filepath='drivers/usb/gadget/function/u_serial.c' line='100' column='1'/>
+          <var-decl name='port_lock' type-id='fb4018a0' visibility='default' filepath='drivers/usb/gadget/function/u_serial.c' line='103' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='3456'>
-          <var-decl name='port_usb' type-id='3921c1a0' visibility='default' filepath='drivers/usb/gadget/function/u_serial.c' line='102' column='1'/>
+          <var-decl name='port_usb' type-id='3921c1a0' visibility='default' filepath='drivers/usb/gadget/function/u_serial.c' line='105' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='3520'>
-          <var-decl name='port_num' type-id='f9b06939' visibility='default' filepath='drivers/usb/gadget/function/u_serial.c' line='107' column='1'/>
+          <var-decl name='port_num' type-id='f9b06939' visibility='default' filepath='drivers/usb/gadget/function/u_serial.c' line='110' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='3584'>
-          <var-decl name='read_pool' type-id='72f469ec' visibility='default' filepath='drivers/usb/gadget/function/u_serial.c' line='109' column='1'/>
+          <var-decl name='read_pool' type-id='72f469ec' visibility='default' filepath='drivers/usb/gadget/function/u_serial.c' line='112' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='3712'>
-          <var-decl name='read_started' type-id='95e97e5e' visibility='default' filepath='drivers/usb/gadget/function/u_serial.c' line='110' column='1'/>
+          <var-decl name='read_started' type-id='95e97e5e' visibility='default' filepath='drivers/usb/gadget/function/u_serial.c' line='113' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='3744'>
-          <var-decl name='read_allocated' type-id='95e97e5e' visibility='default' filepath='drivers/usb/gadget/function/u_serial.c' line='111' column='1'/>
+          <var-decl name='read_allocated' type-id='95e97e5e' visibility='default' filepath='drivers/usb/gadget/function/u_serial.c' line='114' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='3776'>
-          <var-decl name='read_queue' type-id='72f469ec' visibility='default' filepath='drivers/usb/gadget/function/u_serial.c' line='112' column='1'/>
+          <var-decl name='read_queue' type-id='72f469ec' visibility='default' filepath='drivers/usb/gadget/function/u_serial.c' line='115' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='3904'>
-          <var-decl name='n_read' type-id='f0981eeb' visibility='default' filepath='drivers/usb/gadget/function/u_serial.c' line='113' column='1'/>
+          <var-decl name='n_read' type-id='f0981eeb' visibility='default' filepath='drivers/usb/gadget/function/u_serial.c' line='116' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='3968'>
-          <var-decl name='push' type-id='5ad6e0ef' visibility='default' filepath='drivers/usb/gadget/function/u_serial.c' line='114' column='1'/>
+          <var-decl name='push' type-id='5ad6e0ef' visibility='default' filepath='drivers/usb/gadget/function/u_serial.c' line='117' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='5056'>
-          <var-decl name='write_pool' type-id='72f469ec' visibility='default' filepath='drivers/usb/gadget/function/u_serial.c' line='116' column='1'/>
+          <var-decl name='write_pool' type-id='72f469ec' visibility='default' filepath='drivers/usb/gadget/function/u_serial.c' line='119' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='5184'>
-          <var-decl name='write_started' type-id='95e97e5e' visibility='default' filepath='drivers/usb/gadget/function/u_serial.c' line='117' column='1'/>
+          <var-decl name='write_started' type-id='95e97e5e' visibility='default' filepath='drivers/usb/gadget/function/u_serial.c' line='120' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='5216'>
-          <var-decl name='write_allocated' type-id='95e97e5e' visibility='default' filepath='drivers/usb/gadget/function/u_serial.c' line='118' column='1'/>
+          <var-decl name='write_allocated' type-id='95e97e5e' visibility='default' filepath='drivers/usb/gadget/function/u_serial.c' line='121' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='5248'>
-          <var-decl name='port_write_buf' type-id='7664edcc' visibility='default' filepath='drivers/usb/gadget/function/u_serial.c' line='119' column='1'/>
+          <var-decl name='port_write_buf' type-id='7664edcc' visibility='default' filepath='drivers/usb/gadget/function/u_serial.c' line='122' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='5440'>
-          <var-decl name='drain_wait' type-id='b5ab048f' visibility='default' filepath='drivers/usb/gadget/function/u_serial.c' line='120' column='1'/>
+          <var-decl name='drain_wait' type-id='b5ab048f' visibility='default' filepath='drivers/usb/gadget/function/u_serial.c' line='123' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='5632'>
-          <var-decl name='write_busy' type-id='b50a4934' visibility='default' filepath='drivers/usb/gadget/function/u_serial.c' line='121' column='1'/>
+          <var-decl name='write_busy' type-id='b50a4934' visibility='default' filepath='drivers/usb/gadget/function/u_serial.c' line='124' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='5696'>
-          <var-decl name='close_wait' type-id='b5ab048f' visibility='default' filepath='drivers/usb/gadget/function/u_serial.c' line='122' column='1'/>
+          <var-decl name='close_wait' type-id='b5ab048f' visibility='default' filepath='drivers/usb/gadget/function/u_serial.c' line='125' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='5888'>
-          <var-decl name='suspended' type-id='b50a4934' visibility='default' filepath='drivers/usb/gadget/function/u_serial.c' line='123' column='1'/>
+          <var-decl name='suspended' type-id='b50a4934' visibility='default' filepath='drivers/usb/gadget/function/u_serial.c' line='126' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='5896'>
-          <var-decl name='start_delayed' type-id='b50a4934' visibility='default' filepath='drivers/usb/gadget/function/u_serial.c' line='124' column='1'/>
+          <var-decl name='start_delayed' type-id='b50a4934' visibility='default' filepath='drivers/usb/gadget/function/u_serial.c' line='127' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='5904'>
-          <var-decl name='port_line_coding' type-id='d4a32434' visibility='default' filepath='drivers/usb/gadget/function/u_serial.c' line='127' column='1'/>
+          <var-decl name='port_line_coding' type-id='d4a32434' visibility='default' filepath='drivers/usb/gadget/function/u_serial.c' line='130' column='1'/>
         </data-member>
       </class-decl>
       <pointer-type-def type-id='5d26fb4d' size-in-bits='64' id='478ed79d'/>
@@ -36251,12 +36377,12 @@
         <return type-id='95e97e5e'/>
       </function-type>
       <pointer-type-def type-id='e4960e7f' size-in-bits='64' id='48d231fb'/>
-      <class-decl name='wiphy_backport' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='5362' column='1' id='48d5d0d9'>
+      <class-decl name='wiphy_backport' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='5417' column='1' id='48d5d0d9'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='iftype_ext_capab2' type-id='5c74fd13' visibility='default' filepath='include/net/cfg80211.h' line='5363' column='1'/>
+          <var-decl name='iftype_ext_capab2' type-id='5c74fd13' visibility='default' filepath='include/net/cfg80211.h' line='5418' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='64'>
-          <var-decl name='num_iftype_ext_capab2' type-id='f0981eeb' visibility='default' filepath='include/net/cfg80211.h' line='5364' column='1'/>
+          <var-decl name='num_iftype_ext_capab2' type-id='f0981eeb' visibility='default' filepath='include/net/cfg80211.h' line='5419' column='1'/>
         </data-member>
       </class-decl>
       <pointer-type-def type-id='d8ad531a' size-in-bits='64' id='48d9f490'/>
@@ -38896,9 +39022,9 @@
           <var-decl name='delay_us' type-id='f0981eeb' visibility='default' filepath='include/linux/regmap.h' line='76' column='1'/>
         </data-member>
       </class-decl>
-      <class-decl name='hid_report_id' size-in-bits='32' is-struct='yes' visibility='default' filepath='include/linux/hid.h' line='701' column='1' id='4fd7026f'>
+      <class-decl name='hid_report_id' size-in-bits='32' is-struct='yes' visibility='default' filepath='include/linux/hid.h' line='702' column='1' id='4fd7026f'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='report_type' type-id='3f1a6b60' visibility='default' filepath='include/linux/hid.h' line='702' column='1'/>
+          <var-decl name='report_type' type-id='3f1a6b60' visibility='default' filepath='include/linux/hid.h' line='703' column='1'/>
         </data-member>
       </class-decl>
       <class-decl name='pd_pps_data' size-in-bits='288' is-struct='yes' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='284' column='1' id='4ff0f7bc'>
@@ -41439,12 +41565,12 @@
         <enumerator name='VB2_BUF_STATE_ERROR' value='6'/>
       </enum-decl>
       <pointer-type-def type-id='1e0f9dee' size-in-bits='64' id='5509d4f4'/>
-      <class-decl name='ipv6_opt_hdr' size-in-bits='16' is-struct='yes' visibility='default' filepath='include/uapi/linux/ipv6.h' line='62' column='1' id='5510bbdb'>
+      <class-decl name='ipv6_opt_hdr' size-in-bits='16' is-struct='yes' visibility='default' filepath='include/uapi/linux/ipv6.h' line='63' column='1' id='5510bbdb'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='nexthdr' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/ipv6.h' line='63' column='1'/>
+          <var-decl name='nexthdr' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/ipv6.h' line='64' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='8'>
-          <var-decl name='hdrlen' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/ipv6.h' line='64' column='1'/>
+          <var-decl name='hdrlen' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/ipv6.h' line='65' column='1'/>
         </data-member>
       </class-decl>
       <enum-decl name='typec_cc_polarity' filepath='include/linux/usb/tcpm.h' line='26' column='1' id='551eebc9'>
@@ -41535,21 +41661,21 @@
       <array-type-def dimensions='1' type-id='cf29c9b3' size-in-bits='infinite' id='55685a92'>
         <subrange length='infinite' type-id='7ff19f0f' id='031f2035'/>
       </array-type-def>
-      <class-decl name='wiphy_wowlan_tcp_support' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='5131' column='1' id='557bca33'>
+      <class-decl name='wiphy_wowlan_tcp_support' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='5186' column='1' id='557bca33'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='tok' type-id='6a8cbf59' visibility='default' filepath='include/net/cfg80211.h' line='5132' column='1'/>
+          <var-decl name='tok' type-id='6a8cbf59' visibility='default' filepath='include/net/cfg80211.h' line='5187' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='64'>
-          <var-decl name='data_payload_max' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5133' column='1'/>
+          <var-decl name='data_payload_max' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5188' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='96'>
-          <var-decl name='data_interval_max' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5134' column='1'/>
+          <var-decl name='data_interval_max' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5189' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='128'>
-          <var-decl name='wake_payload_max' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5135' column='1'/>
+          <var-decl name='wake_payload_max' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5190' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='160'>
-          <var-decl name='seq' type-id='b50a4934' visibility='default' filepath='include/net/cfg80211.h' line='5136' column='1'/>
+          <var-decl name='seq' type-id='b50a4934' visibility='default' filepath='include/net/cfg80211.h' line='5191' column='1'/>
         </data-member>
       </class-decl>
       <function-type size-in-bits='64' id='557c51cd'>
@@ -42103,18 +42229,18 @@
         <return type-id='95e97e5e'/>
       </function-type>
       <pointer-type-def type-id='8800ed53' size-in-bits='64' id='56ccc407'/>
-      <class-decl name='trace_option_dentry' size-in-bits='256' is-struct='yes' visibility='default' filepath='kernel/trace/trace.h' line='499' column='1' id='56d268db'>
+      <class-decl name='trace_option_dentry' size-in-bits='256' is-struct='yes' visibility='default' filepath='kernel/trace/trace.h' line='498' column='1' id='56d268db'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='opt' type-id='a0260edc' visibility='default' filepath='kernel/trace/trace.h' line='500' column='1'/>
+          <var-decl name='opt' type-id='a0260edc' visibility='default' filepath='kernel/trace/trace.h' line='499' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='64'>
-          <var-decl name='flags' type-id='aef13606' visibility='default' filepath='kernel/trace/trace.h' line='501' column='1'/>
+          <var-decl name='flags' type-id='aef13606' visibility='default' filepath='kernel/trace/trace.h' line='500' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='128'>
-          <var-decl name='tr' type-id='898c1076' visibility='default' filepath='kernel/trace/trace.h' line='502' column='1'/>
+          <var-decl name='tr' type-id='898c1076' visibility='default' filepath='kernel/trace/trace.h' line='501' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='192'>
-          <var-decl name='entry' type-id='27675065' visibility='default' filepath='kernel/trace/trace.h' line='503' column='1'/>
+          <var-decl name='entry' type-id='27675065' visibility='default' filepath='kernel/trace/trace.h' line='502' column='1'/>
         </data-member>
       </class-decl>
       <enum-decl name='ufs_ref_clk_freq' filepath='drivers/scsi/ufs/ufs.h' line='406' column='1' id='56d5992c'>
@@ -43579,7 +43705,7 @@
         <parameter type-id='4616a179'/>
         <return type-id='95e97e5e'/>
       </function-type>
-      <enum-decl name='nl80211_dfs_regions' filepath='include/uapi/linux/nl80211.h' line='4440' column='1' id='5a85c988'>
+      <enum-decl name='nl80211_dfs_regions' filepath='include/uapi/linux/nl80211.h' line='4465' column='1' id='5a85c988'>
         <underlying-type type-id='9cac1fee'/>
         <enumerator name='NL80211_DFS_UNSET' value='0'/>
         <enumerator name='NL80211_DFS_FCC' value='1'/>
@@ -44341,27 +44467,27 @@
       </function-type>
       <pointer-type-def type-id='70c545cd' size-in-bits='64' id='5bb9c75d'/>
       <typedef-decl name='uLong' type-id='7359adad' filepath='include/linux/zconf.h' line='54' column='1' id='5bbcce85'/>
-      <class-decl name='wiphy_wowlan_support' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='5154' column='1' id='5bbd300b'>
+      <class-decl name='wiphy_wowlan_support' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='5209' column='1' id='5bbd300b'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='flags' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5155' column='1'/>
+          <var-decl name='flags' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5210' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='32'>
-          <var-decl name='n_patterns' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='5156' column='1'/>
+          <var-decl name='n_patterns' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='5211' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='64'>
-          <var-decl name='pattern_max_len' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='5157' column='1'/>
+          <var-decl name='pattern_max_len' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='5212' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='96'>
-          <var-decl name='pattern_min_len' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='5158' column='1'/>
+          <var-decl name='pattern_min_len' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='5213' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='128'>
-          <var-decl name='max_pkt_offset' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='5159' column='1'/>
+          <var-decl name='max_pkt_offset' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='5214' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='160'>
-          <var-decl name='max_nd_match_sets' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='5160' column='1'/>
+          <var-decl name='max_nd_match_sets' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='5215' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='192'>
-          <var-decl name='tcp' type-id='b3ebc0a8' visibility='default' filepath='include/net/cfg80211.h' line='5161' column='1'/>
+          <var-decl name='tcp' type-id='b3ebc0a8' visibility='default' filepath='include/net/cfg80211.h' line='5216' column='1'/>
         </data-member>
       </class-decl>
       <function-type size-in-bits='64' id='5bbf1052'>
@@ -44553,7 +44679,26 @@
           <var-decl name='reg_rules' type-id='9195bab1' visibility='default' filepath='include/net/regulatory.h' line='231' column='1'/>
         </data-member>
       </class-decl>
-      <class-decl name='input_dev_poller' is-struct='yes' visibility='default' is-declaration-only='yes' id='5c32afaa'/>
+      <class-decl name='input_dev_poller' size-in-bits='1344' is-struct='yes' visibility='default' filepath='drivers/input/input-poller.c' line='15' column='1' id='5c32afaa'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='poll' type-id='b44880ea' visibility='default' filepath='drivers/input/input-poller.c' line='16' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='poll_interval' type-id='f0981eeb' visibility='default' filepath='drivers/input/input-poller.c' line='18' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='poll_interval_max' type-id='f0981eeb' visibility='default' filepath='drivers/input/input-poller.c' line='19' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='poll_interval_min' type-id='f0981eeb' visibility='default' filepath='drivers/input/input-poller.c' line='20' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='input' type-id='74b427eb' visibility='default' filepath='drivers/input/input-poller.c' line='22' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='work' type-id='5ad6e0ef' visibility='default' filepath='drivers/input/input-poller.c' line='23' column='1'/>
+        </data-member>
+      </class-decl>
       <pointer-type-def type-id='ae670bfa' size-in-bits='64' id='5c379870'/>
       <function-type size-in-bits='64' id='5c3855b6'>
         <parameter type-id='ca9354d1'/>
@@ -45256,12 +45401,12 @@
       <pointer-type-def type-id='9c313c2d' size-in-bits='64' id='5d6479ae'/>
       <pointer-type-def type-id='aa647859' size-in-bits='64' id='5d77c671'/>
       <pointer-type-def type-id='09ffba8a' size-in-bits='64' id='5d92c9e0'/>
-      <class-decl name='cfg80211_bss_select_adjust' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='2646' column='1' id='5da08e25'>
+      <class-decl name='cfg80211_bss_select_adjust' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='2678' column='1' id='5da08e25'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='band' type-id='3eaa0294' visibility='default' filepath='include/net/cfg80211.h' line='2647' column='1'/>
+          <var-decl name='band' type-id='3eaa0294' visibility='default' filepath='include/net/cfg80211.h' line='2679' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='32'>
-          <var-decl name='delta' type-id='fdbf7a0f' visibility='default' filepath='include/net/cfg80211.h' line='2648' column='1'/>
+          <var-decl name='delta' type-id='fdbf7a0f' visibility='default' filepath='include/net/cfg80211.h' line='2680' column='1'/>
         </data-member>
       </class-decl>
       <class-decl name='watchdog_info' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/uapi/linux/watchdog.h' line='18' column='1' id='5da1665b'>
@@ -45705,6 +45850,20 @@
         <parameter type-id='95e97e5e'/>
         <return type-id='2594b00f'/>
       </function-type>
+      <class-decl name='crypto_authenc_keys' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/crypto/authenc.h' line='21' column='1' id='5ea6264e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='authkey' type-id='bbaf3419' visibility='default' filepath='include/crypto/authenc.h' line='22' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='enckey' type-id='bbaf3419' visibility='default' filepath='include/crypto/authenc.h' line='23' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='authkeylen' type-id='f0981eeb' visibility='default' filepath='include/crypto/authenc.h' line='25' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='enckeylen' type-id='f0981eeb' visibility='default' filepath='include/crypto/authenc.h' line='26' column='1'/>
+        </data-member>
+      </class-decl>
       <pointer-type-def type-id='42772acc' size-in-bits='64' id='5eb6827a'/>
       <class-decl name='sd_ssr' size-in-bits='96' is-struct='yes' visibility='default' filepath='include/linux/mmc/card.h' line='148' column='1' id='5eba9d65'>
         <data-member access='public' layout-offset-in-bits='0'>
@@ -46026,87 +46185,87 @@
         <enumerator name='CA_EVENT_ECN_IS_CE' value='5'/>
       </enum-decl>
       <pointer-type-def type-id='ebcc73dc' size-in-bits='64' id='5f5506f6'/>
-      <class-decl name='inode_operations' size-in-bits='2048' is-struct='yes' visibility='default' filepath='include/linux/fs.h' line='2096' column='1' id='5f5aa1ff'>
+      <class-decl name='inode_operations' size-in-bits='2048' is-struct='yes' visibility='default' filepath='include/linux/fs.h' line='2102' column='1' id='5f5aa1ff'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='lookup' type-id='02f90a61' visibility='default' filepath='include/linux/fs.h' line='2097' column='1'/>
+          <var-decl name='lookup' type-id='02f90a61' visibility='default' filepath='include/linux/fs.h' line='2103' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='64'>
-          <var-decl name='get_link' type-id='76ae8e1d' visibility='default' filepath='include/linux/fs.h' line='2098' column='1'/>
+          <var-decl name='get_link' type-id='76ae8e1d' visibility='default' filepath='include/linux/fs.h' line='2104' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='128'>
-          <var-decl name='permission' type-id='a210f03c' visibility='default' filepath='include/linux/fs.h' line='2099' column='1'/>
+          <var-decl name='permission' type-id='a210f03c' visibility='default' filepath='include/linux/fs.h' line='2105' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='192'>
-          <var-decl name='get_acl' type-id='4f8933db' visibility='default' filepath='include/linux/fs.h' line='2100' column='1'/>
+          <var-decl name='get_acl' type-id='4f8933db' visibility='default' filepath='include/linux/fs.h' line='2106' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='256'>
-          <var-decl name='readlink' type-id='a57bd028' visibility='default' filepath='include/linux/fs.h' line='2102' column='1'/>
+          <var-decl name='readlink' type-id='a57bd028' visibility='default' filepath='include/linux/fs.h' line='2108' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='320'>
-          <var-decl name='create' type-id='873d6532' visibility='default' filepath='include/linux/fs.h' line='2104' column='1'/>
+          <var-decl name='create' type-id='873d6532' visibility='default' filepath='include/linux/fs.h' line='2110' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='384'>
-          <var-decl name='link' type-id='4b872e00' visibility='default' filepath='include/linux/fs.h' line='2106' column='1'/>
+          <var-decl name='link' type-id='4b872e00' visibility='default' filepath='include/linux/fs.h' line='2112' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='448'>
-          <var-decl name='unlink' type-id='7f5be7f6' visibility='default' filepath='include/linux/fs.h' line='2107' column='1'/>
+          <var-decl name='unlink' type-id='7f5be7f6' visibility='default' filepath='include/linux/fs.h' line='2113' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='512'>
-          <var-decl name='symlink' type-id='a749fdca' visibility='default' filepath='include/linux/fs.h' line='2108' column='1'/>
+          <var-decl name='symlink' type-id='a749fdca' visibility='default' filepath='include/linux/fs.h' line='2114' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='576'>
-          <var-decl name='mkdir' type-id='e068a947' visibility='default' filepath='include/linux/fs.h' line='2110' column='1'/>
+          <var-decl name='mkdir' type-id='e068a947' visibility='default' filepath='include/linux/fs.h' line='2116' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='640'>
-          <var-decl name='rmdir' type-id='7f5be7f6' visibility='default' filepath='include/linux/fs.h' line='2112' column='1'/>
+          <var-decl name='rmdir' type-id='7f5be7f6' visibility='default' filepath='include/linux/fs.h' line='2118' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='704'>
-          <var-decl name='mknod' type-id='0496a3e0' visibility='default' filepath='include/linux/fs.h' line='2113' column='1'/>
+          <var-decl name='mknod' type-id='0496a3e0' visibility='default' filepath='include/linux/fs.h' line='2119' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='768'>
-          <var-decl name='rename' type-id='25a3fd6e' visibility='default' filepath='include/linux/fs.h' line='2115' column='1'/>
+          <var-decl name='rename' type-id='25a3fd6e' visibility='default' filepath='include/linux/fs.h' line='2121' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='832'>
-          <var-decl name='setattr' type-id='bbc2dc04' visibility='default' filepath='include/linux/fs.h' line='2117' column='1'/>
+          <var-decl name='setattr' type-id='bbc2dc04' visibility='default' filepath='include/linux/fs.h' line='2123' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='896'>
-          <var-decl name='getattr' type-id='d6a129cc' visibility='default' filepath='include/linux/fs.h' line='2119' column='1'/>
+          <var-decl name='getattr' type-id='d6a129cc' visibility='default' filepath='include/linux/fs.h' line='2125' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='960'>
-          <var-decl name='listxattr' type-id='3494e4bb' visibility='default' filepath='include/linux/fs.h' line='2121' column='1'/>
+          <var-decl name='listxattr' type-id='3494e4bb' visibility='default' filepath='include/linux/fs.h' line='2127' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1024'>
-          <var-decl name='fiemap' type-id='0508acce' visibility='default' filepath='include/linux/fs.h' line='2122' column='1'/>
+          <var-decl name='fiemap' type-id='0508acce' visibility='default' filepath='include/linux/fs.h' line='2128' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1088'>
-          <var-decl name='update_time' type-id='64ecf6a5' visibility='default' filepath='include/linux/fs.h' line='2124' column='1'/>
+          <var-decl name='update_time' type-id='64ecf6a5' visibility='default' filepath='include/linux/fs.h' line='2130' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1152'>
-          <var-decl name='atomic_open' type-id='d3807eb0' visibility='default' filepath='include/linux/fs.h' line='2125' column='1'/>
+          <var-decl name='atomic_open' type-id='d3807eb0' visibility='default' filepath='include/linux/fs.h' line='2131' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1216'>
-          <var-decl name='tmpfile' type-id='e068a947' visibility='default' filepath='include/linux/fs.h' line='2128' column='1'/>
+          <var-decl name='tmpfile' type-id='e068a947' visibility='default' filepath='include/linux/fs.h' line='2134' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1280'>
-          <var-decl name='set_acl' type-id='920ffb2e' visibility='default' filepath='include/linux/fs.h' line='2130' column='1'/>
+          <var-decl name='set_acl' type-id='920ffb2e' visibility='default' filepath='include/linux/fs.h' line='2136' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1344'>
-          <var-decl name='fileattr_set' type-id='3511de75' visibility='default' filepath='include/linux/fs.h' line='2132' column='1'/>
+          <var-decl name='fileattr_set' type-id='3511de75' visibility='default' filepath='include/linux/fs.h' line='2138' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1408'>
-          <var-decl name='fileattr_get' type-id='4d01b8d2' visibility='default' filepath='include/linux/fs.h' line='2134' column='1'/>
+          <var-decl name='fileattr_get' type-id='4d01b8d2' visibility='default' filepath='include/linux/fs.h' line='2140' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1472'>
-          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='2136' column='1'/>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='2142' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1536'>
-          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='2137' column='1'/>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='2143' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1600'>
-          <var-decl name='android_kabi_reserved3' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='2138' column='1'/>
+          <var-decl name='android_kabi_reserved3' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='2144' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1664'>
-          <var-decl name='android_kabi_reserved4' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='2139' column='1'/>
+          <var-decl name='android_kabi_reserved4' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='2145' column='1'/>
         </data-member>
       </class-decl>
       <function-type size-in-bits='64' id='5f5b9bdb'>
@@ -46415,12 +46574,12 @@
         <subrange length='2' type-id='7ff19f0f' id='52efc4ef'/>
       </array-type-def>
       <pointer-type-def type-id='e5f6c4d2' size-in-bits='64' id='5fe73d20'/>
-      <class-decl name='event_filter' size-in-bits='128' is-struct='yes' visibility='default' filepath='kernel/trace/trace.h' line='1288' column='1' id='5ff1273a'>
+      <class-decl name='event_filter' size-in-bits='128' is-struct='yes' visibility='default' filepath='kernel/trace/trace.h' line='1286' column='1' id='5ff1273a'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='prog' type-id='efd0fdec' visibility='default' filepath='kernel/trace/trace.h' line='1289' column='1'/>
+          <var-decl name='prog' type-id='efd0fdec' visibility='default' filepath='kernel/trace/trace.h' line='1287' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='64'>
-          <var-decl name='filter_string' type-id='26a90f95' visibility='default' filepath='kernel/trace/trace.h' line='1290' column='1'/>
+          <var-decl name='filter_string' type-id='26a90f95' visibility='default' filepath='kernel/trace/trace.h' line='1288' column='1'/>
         </data-member>
       </class-decl>
       <pointer-type-def type-id='458c097a' size-in-bits='64' id='5ffcd66c'/>
@@ -46810,27 +46969,27 @@
       </class-decl>
       <typedef-decl name='regmap_hw_gather_write' type-id='acda35bb' filepath='include/linux/regmap.h' line='467' column='1' id='60be0faa'/>
       <pointer-type-def type-id='607834f2' size-in-bits='64' id='60c9df2c'/>
-      <class-decl name='hid_input' size-in-bits='576' is-struct='yes' visibility='default' filepath='include/linux/hid.h' line='531' column='1' id='60cc85f5'>
+      <class-decl name='hid_input' size-in-bits='576' is-struct='yes' visibility='default' filepath='include/linux/hid.h' line='532' column='1' id='60cc85f5'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/linux/hid.h' line='532' column='1'/>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/linux/hid.h' line='533' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='128'>
-          <var-decl name='report' type-id='5b4284d1' visibility='default' filepath='include/linux/hid.h' line='533' column='1'/>
+          <var-decl name='report' type-id='5b4284d1' visibility='default' filepath='include/linux/hid.h' line='534' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='192'>
-          <var-decl name='input' type-id='74b427eb' visibility='default' filepath='include/linux/hid.h' line='534' column='1'/>
+          <var-decl name='input' type-id='74b427eb' visibility='default' filepath='include/linux/hid.h' line='535' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='256'>
-          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/linux/hid.h' line='535' column='1'/>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/linux/hid.h' line='536' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='320'>
-          <var-decl name='registered' type-id='b50a4934' visibility='default' filepath='include/linux/hid.h' line='536' column='1'/>
+          <var-decl name='registered' type-id='b50a4934' visibility='default' filepath='include/linux/hid.h' line='537' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='384'>
-          <var-decl name='reports' type-id='72f469ec' visibility='default' filepath='include/linux/hid.h' line='537' column='1'/>
+          <var-decl name='reports' type-id='72f469ec' visibility='default' filepath='include/linux/hid.h' line='538' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='512'>
-          <var-decl name='application' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='538' column='1'/>
+          <var-decl name='application' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='539' column='1'/>
         </data-member>
       </class-decl>
       <function-type size-in-bits='64' id='60d50d6a'>
@@ -48086,7 +48245,7 @@
           <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='679' column='1'/>
         </data-member>
       </class-decl>
-      <class-decl name='gpio_desc' size-in-bits='320' is-struct='yes' visibility='default' filepath='drivers/gpio/gpiolib.h' line='133' column='1' id='63b74212'>
+      <class-decl name='gpio_desc' size-in-bits='320' is-struct='yes' visibility='default' filepath='drivers/pinctrl/../gpio/gpiolib.h' line='133' column='1' id='63b74212'>
         <data-member access='public' layout-offset-in-bits='0'>
           <var-decl name='gdev' type-id='fb7dc22d' visibility='default' filepath='drivers/pinctrl/../gpio/gpiolib.h' line='134' column='1'/>
         </data-member>
@@ -48179,21 +48338,21 @@
         <return type-id='95e97e5e'/>
       </function-type>
       <pointer-type-def type-id='e29a2892' size-in-bits='64' id='63faaa44'/>
-      <class-decl name='filename' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/fs.h' line='2715' column='1' id='63fc6210'>
+      <class-decl name='filename' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/fs.h' line='2721' column='1' id='63fc6210'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/linux/fs.h' line='2716' column='1'/>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/linux/fs.h' line='2722' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='64'>
-          <var-decl name='uptr' type-id='80f4b756' visibility='default' filepath='include/linux/fs.h' line='2717' column='1'/>
+          <var-decl name='uptr' type-id='80f4b756' visibility='default' filepath='include/linux/fs.h' line='2723' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='128'>
-          <var-decl name='refcnt' type-id='95e97e5e' visibility='default' filepath='include/linux/fs.h' line='2718' column='1'/>
+          <var-decl name='refcnt' type-id='95e97e5e' visibility='default' filepath='include/linux/fs.h' line='2724' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='192'>
-          <var-decl name='aname' type-id='5acb442f' visibility='default' filepath='include/linux/fs.h' line='2719' column='1'/>
+          <var-decl name='aname' type-id='5acb442f' visibility='default' filepath='include/linux/fs.h' line='2725' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='256'>
-          <var-decl name='iname' type-id='0904d1cc' visibility='default' filepath='include/linux/fs.h' line='2720' column='1'/>
+          <var-decl name='iname' type-id='0904d1cc' visibility='default' filepath='include/linux/fs.h' line='2726' column='1'/>
         </data-member>
       </class-decl>
       <pointer-type-def type-id='1aafc68e' size-in-bits='64' id='64015654'/>
@@ -49427,177 +49586,177 @@
         </data-member>
       </class-decl>
       <pointer-type-def type-id='cc3fe760' size-in-bits='64' id='670156c6'/>
-      <class-decl name='hid_device' size-in-bits='62848' is-struct='yes' visibility='default' filepath='include/linux/hid.h' line='556' column='1' id='6703ad9d'>
+      <class-decl name='hid_device' size-in-bits='62848' is-struct='yes' visibility='default' filepath='include/linux/hid.h' line='557' column='1' id='6703ad9d'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='dev_rdesc' type-id='474e5dcc' visibility='default' filepath='include/linux/hid.h' line='557' column='1'/>
+          <var-decl name='dev_rdesc' type-id='474e5dcc' visibility='default' filepath='include/linux/hid.h' line='558' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='64'>
-          <var-decl name='dev_rsize' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='558' column='1'/>
+          <var-decl name='dev_rsize' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='559' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='128'>
-          <var-decl name='rdesc' type-id='474e5dcc' visibility='default' filepath='include/linux/hid.h' line='559' column='1'/>
+          <var-decl name='rdesc' type-id='474e5dcc' visibility='default' filepath='include/linux/hid.h' line='560' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='192'>
-          <var-decl name='rsize' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='560' column='1'/>
+          <var-decl name='rsize' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='561' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='256'>
-          <var-decl name='collection' type-id='f2428caf' visibility='default' filepath='include/linux/hid.h' line='561' column='1'/>
+          <var-decl name='collection' type-id='f2428caf' visibility='default' filepath='include/linux/hid.h' line='562' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='320'>
-          <var-decl name='collection_size' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='562' column='1'/>
+          <var-decl name='collection_size' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='563' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='352'>
-          <var-decl name='maxcollection' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='563' column='1'/>
+          <var-decl name='maxcollection' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='564' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='384'>
-          <var-decl name='maxapplication' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='564' column='1'/>
+          <var-decl name='maxapplication' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='565' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='416'>
-          <var-decl name='bus' type-id='d315442e' visibility='default' filepath='include/linux/hid.h' line='565' column='1'/>
+          <var-decl name='bus' type-id='d315442e' visibility='default' filepath='include/linux/hid.h' line='566' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='432'>
-          <var-decl name='group' type-id='d315442e' visibility='default' filepath='include/linux/hid.h' line='566' column='1'/>
+          <var-decl name='group' type-id='d315442e' visibility='default' filepath='include/linux/hid.h' line='567' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='448'>
-          <var-decl name='vendor' type-id='3f1a6b60' visibility='default' filepath='include/linux/hid.h' line='567' column='1'/>
+          <var-decl name='vendor' type-id='3f1a6b60' visibility='default' filepath='include/linux/hid.h' line='568' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='480'>
-          <var-decl name='product' type-id='3f1a6b60' visibility='default' filepath='include/linux/hid.h' line='568' column='1'/>
+          <var-decl name='product' type-id='3f1a6b60' visibility='default' filepath='include/linux/hid.h' line='569' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='512'>
-          <var-decl name='version' type-id='3f1a6b60' visibility='default' filepath='include/linux/hid.h' line='569' column='1'/>
+          <var-decl name='version' type-id='3f1a6b60' visibility='default' filepath='include/linux/hid.h' line='570' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='544'>
-          <var-decl name='type' type-id='fa954a4e' visibility='default' filepath='include/linux/hid.h' line='570' column='1'/>
+          <var-decl name='type' type-id='fa954a4e' visibility='default' filepath='include/linux/hid.h' line='571' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='576'>
-          <var-decl name='country' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='571' column='1'/>
+          <var-decl name='country' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='572' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='640'>
-          <var-decl name='report_enum' type-id='e8e17bcc' visibility='default' filepath='include/linux/hid.h' line='572' column='1'/>
+          <var-decl name='report_enum' type-id='e8e17bcc' visibility='default' filepath='include/linux/hid.h' line='573' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='50368'>
-          <var-decl name='led_work' type-id='ef9025d0' visibility='default' filepath='include/linux/hid.h' line='573' column='1'/>
+          <var-decl name='led_work' type-id='ef9025d0' visibility='default' filepath='include/linux/hid.h' line='574' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='50752'>
-          <var-decl name='driver_input_lock' type-id='011244e5' visibility='default' filepath='include/linux/hid.h' line='575' column='1'/>
+          <var-decl name='driver_input_lock' type-id='011244e5' visibility='default' filepath='include/linux/hid.h' line='576' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='50944'>
-          <var-decl name='dev' type-id='66e487eb' visibility='default' filepath='include/linux/hid.h' line='576' column='1'/>
+          <var-decl name='dev' type-id='66e487eb' visibility='default' filepath='include/linux/hid.h' line='577' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='58240'>
-          <var-decl name='driver' type-id='cbd2074d' visibility='default' filepath='include/linux/hid.h' line='577' column='1'/>
+          <var-decl name='driver' type-id='cbd2074d' visibility='default' filepath='include/linux/hid.h' line='578' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='58304'>
-          <var-decl name='ll_driver' type-id='7073b1dc' visibility='default' filepath='include/linux/hid.h' line='579' column='1'/>
+          <var-decl name='ll_driver' type-id='7073b1dc' visibility='default' filepath='include/linux/hid.h' line='580' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='58368'>
-          <var-decl name='ll_open_lock' type-id='925167dc' visibility='default' filepath='include/linux/hid.h' line='580' column='1'/>
+          <var-decl name='ll_open_lock' type-id='925167dc' visibility='default' filepath='include/linux/hid.h' line='581' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='58752'>
-          <var-decl name='ll_open_count' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='581' column='1'/>
+          <var-decl name='ll_open_count' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='582' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='58816'>
-          <var-decl name='battery' type-id='c0c93c9e' visibility='default' filepath='include/linux/hid.h' line='589' column='1'/>
+          <var-decl name='battery' type-id='c0c93c9e' visibility='default' filepath='include/linux/hid.h' line='590' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='58880'>
-          <var-decl name='battery_capacity' type-id='3158a266' visibility='default' filepath='include/linux/hid.h' line='590' column='1'/>
+          <var-decl name='battery_capacity' type-id='3158a266' visibility='default' filepath='include/linux/hid.h' line='591' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='58912'>
-          <var-decl name='battery_min' type-id='3158a266' visibility='default' filepath='include/linux/hid.h' line='591' column='1'/>
+          <var-decl name='battery_min' type-id='3158a266' visibility='default' filepath='include/linux/hid.h' line='592' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='58944'>
-          <var-decl name='battery_max' type-id='3158a266' visibility='default' filepath='include/linux/hid.h' line='592' column='1'/>
+          <var-decl name='battery_max' type-id='3158a266' visibility='default' filepath='include/linux/hid.h' line='593' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='58976'>
-          <var-decl name='battery_report_type' type-id='3158a266' visibility='default' filepath='include/linux/hid.h' line='593' column='1'/>
+          <var-decl name='battery_report_type' type-id='3158a266' visibility='default' filepath='include/linux/hid.h' line='594' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='59008'>
-          <var-decl name='battery_report_id' type-id='3158a266' visibility='default' filepath='include/linux/hid.h' line='594' column='1'/>
+          <var-decl name='battery_report_id' type-id='3158a266' visibility='default' filepath='include/linux/hid.h' line='595' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='59040'>
-          <var-decl name='battery_status' type-id='82d56eba' visibility='default' filepath='include/linux/hid.h' line='595' column='1'/>
+          <var-decl name='battery_status' type-id='82d56eba' visibility='default' filepath='include/linux/hid.h' line='596' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='59072'>
-          <var-decl name='battery_avoid_query' type-id='b50a4934' visibility='default' filepath='include/linux/hid.h' line='596' column='1'/>
+          <var-decl name='battery_avoid_query' type-id='b50a4934' visibility='default' filepath='include/linux/hid.h' line='597' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='59136'>
-          <var-decl name='battery_ratelimit_time' type-id='fbc017ef' visibility='default' filepath='include/linux/hid.h' line='597' column='1'/>
+          <var-decl name='battery_ratelimit_time' type-id='fbc017ef' visibility='default' filepath='include/linux/hid.h' line='598' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='59200'>
-          <var-decl name='status' type-id='7359adad' visibility='default' filepath='include/linux/hid.h' line='600' column='1'/>
+          <var-decl name='status' type-id='7359adad' visibility='default' filepath='include/linux/hid.h' line='601' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='59264'>
-          <var-decl name='claimed' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='601' column='1'/>
+          <var-decl name='claimed' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='602' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='59296'>
-          <var-decl name='quirks' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='602' column='1'/>
+          <var-decl name='quirks' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='603' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='59328'>
-          <var-decl name='io_started' type-id='b50a4934' visibility='default' filepath='include/linux/hid.h' line='603' column='1'/>
+          <var-decl name='io_started' type-id='b50a4934' visibility='default' filepath='include/linux/hid.h' line='604' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='59392'>
-          <var-decl name='inputs' type-id='72f469ec' visibility='default' filepath='include/linux/hid.h' line='605' column='1'/>
+          <var-decl name='inputs' type-id='72f469ec' visibility='default' filepath='include/linux/hid.h' line='606' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='59520'>
-          <var-decl name='hiddev' type-id='eaa32e2f' visibility='default' filepath='include/linux/hid.h' line='606' column='1'/>
+          <var-decl name='hiddev' type-id='eaa32e2f' visibility='default' filepath='include/linux/hid.h' line='607' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='59584'>
-          <var-decl name='hidraw' type-id='eaa32e2f' visibility='default' filepath='include/linux/hid.h' line='607' column='1'/>
+          <var-decl name='hidraw' type-id='eaa32e2f' visibility='default' filepath='include/linux/hid.h' line='608' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='59648'>
-          <var-decl name='name' type-id='e3204322' visibility='default' filepath='include/linux/hid.h' line='609' column='1'/>
+          <var-decl name='name' type-id='e3204322' visibility='default' filepath='include/linux/hid.h' line='610' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='60672'>
-          <var-decl name='phys' type-id='59daf3ef' visibility='default' filepath='include/linux/hid.h' line='610' column='1'/>
+          <var-decl name='phys' type-id='59daf3ef' visibility='default' filepath='include/linux/hid.h' line='611' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='61184'>
-          <var-decl name='uniq' type-id='59daf3ef' visibility='default' filepath='include/linux/hid.h' line='611' column='1'/>
+          <var-decl name='uniq' type-id='59daf3ef' visibility='default' filepath='include/linux/hid.h' line='612' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='61696'>
-          <var-decl name='driver_data' type-id='eaa32e2f' visibility='default' filepath='include/linux/hid.h' line='613' column='1'/>
+          <var-decl name='driver_data' type-id='eaa32e2f' visibility='default' filepath='include/linux/hid.h' line='614' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='61760'>
-          <var-decl name='ff_init' type-id='7e01f3db' visibility='default' filepath='include/linux/hid.h' line='616' column='1'/>
+          <var-decl name='ff_init' type-id='7e01f3db' visibility='default' filepath='include/linux/hid.h' line='617' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='61824'>
-          <var-decl name='hiddev_connect' type-id='fde001a9' visibility='default' filepath='include/linux/hid.h' line='619' column='1'/>
+          <var-decl name='hiddev_connect' type-id='fde001a9' visibility='default' filepath='include/linux/hid.h' line='620' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='61888'>
-          <var-decl name='hiddev_disconnect' type-id='5befc19c' visibility='default' filepath='include/linux/hid.h' line='620' column='1'/>
+          <var-decl name='hiddev_disconnect' type-id='5befc19c' visibility='default' filepath='include/linux/hid.h' line='621' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='61952'>
-          <var-decl name='hiddev_hid_event' type-id='190eee1c' visibility='default' filepath='include/linux/hid.h' line='621' column='1'/>
+          <var-decl name='hiddev_hid_event' type-id='190eee1c' visibility='default' filepath='include/linux/hid.h' line='622' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='62016'>
-          <var-decl name='hiddev_report_event' type-id='e23057dc' visibility='default' filepath='include/linux/hid.h' line='623' column='1'/>
+          <var-decl name='hiddev_report_event' type-id='e23057dc' visibility='default' filepath='include/linux/hid.h' line='624' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='62080'>
-          <var-decl name='debug' type-id='8efea9e5' visibility='default' filepath='include/linux/hid.h' line='626' column='1'/>
+          <var-decl name='debug' type-id='8efea9e5' visibility='default' filepath='include/linux/hid.h' line='627' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='62144'>
-          <var-decl name='debug_dir' type-id='27675065' visibility='default' filepath='include/linux/hid.h' line='627' column='1'/>
+          <var-decl name='debug_dir' type-id='27675065' visibility='default' filepath='include/linux/hid.h' line='628' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='62208'>
-          <var-decl name='debug_rdesc' type-id='27675065' visibility='default' filepath='include/linux/hid.h' line='628' column='1'/>
+          <var-decl name='debug_rdesc' type-id='27675065' visibility='default' filepath='include/linux/hid.h' line='629' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='62272'>
-          <var-decl name='debug_events' type-id='27675065' visibility='default' filepath='include/linux/hid.h' line='629' column='1'/>
+          <var-decl name='debug_events' type-id='27675065' visibility='default' filepath='include/linux/hid.h' line='630' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='62336'>
-          <var-decl name='debug_list' type-id='72f469ec' visibility='default' filepath='include/linux/hid.h' line='630' column='1'/>
+          <var-decl name='debug_list' type-id='72f469ec' visibility='default' filepath='include/linux/hid.h' line='631' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='62464'>
-          <var-decl name='debug_list_lock' type-id='fb4018a0' visibility='default' filepath='include/linux/hid.h' line='631' column='1'/>
+          <var-decl name='debug_list_lock' type-id='fb4018a0' visibility='default' filepath='include/linux/hid.h' line='632' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='62528'>
-          <var-decl name='debug_wait' type-id='b5ab048f' visibility='default' filepath='include/linux/hid.h' line='632' column='1'/>
+          <var-decl name='debug_wait' type-id='b5ab048f' visibility='default' filepath='include/linux/hid.h' line='633' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='62720'>
-          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/hid.h' line='634' column='1'/>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/hid.h' line='635' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='62784'>
-          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/hid.h' line='635' column='1'/>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/hid.h' line='636' column='1'/>
         </data-member>
       </class-decl>
       <typedef-decl name='wait_queue_func_t' type-id='3e643710' filepath='include/linux/wait.h' line='16' column='1' id='67119c17'/>
@@ -49805,7 +49964,7 @@
       <array-type-def dimensions='1' type-id='f0981eeb' size-in-bits='320' id='67c1c82c'>
         <subrange length='10' type-id='7ff19f0f' id='487da03a'/>
       </array-type-def>
-      <enum-decl name='bpf_attach_type' filepath='include/uapi/linux/bpf.h' line='954' column='1' id='67ce11ed'>
+      <enum-decl name='bpf_attach_type' filepath='include/uapi/linux/bpf.h' line='966' column='1' id='67ce11ed'>
         <underlying-type type-id='9cac1fee'/>
         <enumerator name='BPF_CGROUP_INET_INGRESS' value='0'/>
         <enumerator name='BPF_CGROUP_INET_EGRESS' value='1'/>
@@ -50121,330 +50280,330 @@
       <pointer-type-def type-id='4041f6de' size-in-bits='64' id='684afc90'/>
       <pointer-type-def type-id='2b18e57b' size-in-bits='64' id='6850d327'/>
       <pointer-type-def type-id='3b03705e' size-in-bits='64' id='6850e780'/>
-      <class-decl name='wiphy' size-in-bits='13312' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='5578' column='1' id='68523a94'>
+      <class-decl name='wiphy' size-in-bits='13312' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='5633' column='1' id='68523a94'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='mtx' type-id='925167dc' visibility='default' filepath='include/net/cfg80211.h' line='5579' column='1'/>
+          <var-decl name='mtx' type-id='925167dc' visibility='default' filepath='include/net/cfg80211.h' line='5634' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='384'>
-          <var-decl name='perm_addr' type-id='cf1a4160' visibility='default' filepath='include/net/cfg80211.h' line='5583' column='1'/>
+          <var-decl name='perm_addr' type-id='cf1a4160' visibility='default' filepath='include/net/cfg80211.h' line='5638' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='432'>
-          <var-decl name='addr_mask' type-id='cf1a4160' visibility='default' filepath='include/net/cfg80211.h' line='5584' column='1'/>
+          <var-decl name='addr_mask' type-id='cf1a4160' visibility='default' filepath='include/net/cfg80211.h' line='5639' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='512'>
-          <var-decl name='addresses' type-id='01b378ab' visibility='default' filepath='include/net/cfg80211.h' line='5586' column='1'/>
+          <var-decl name='addresses' type-id='01b378ab' visibility='default' filepath='include/net/cfg80211.h' line='5641' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='576'>
-          <var-decl name='mgmt_stypes' type-id='0cda9080' visibility='default' filepath='include/net/cfg80211.h' line='5588' column='1'/>
+          <var-decl name='mgmt_stypes' type-id='0cda9080' visibility='default' filepath='include/net/cfg80211.h' line='5643' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='640'>
-          <var-decl name='iface_combinations' type-id='fa32a449' visibility='default' filepath='include/net/cfg80211.h' line='5590' column='1'/>
+          <var-decl name='iface_combinations' type-id='fa32a449' visibility='default' filepath='include/net/cfg80211.h' line='5645' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='704'>
-          <var-decl name='n_iface_combinations' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='5591' column='1'/>
+          <var-decl name='n_iface_combinations' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='5646' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='736'>
-          <var-decl name='software_iftypes' type-id='1dc6a898' visibility='default' filepath='include/net/cfg80211.h' line='5592' column='1'/>
+          <var-decl name='software_iftypes' type-id='1dc6a898' visibility='default' filepath='include/net/cfg80211.h' line='5647' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='752'>
-          <var-decl name='n_addresses' type-id='1dc6a898' visibility='default' filepath='include/net/cfg80211.h' line='5594' column='1'/>
+          <var-decl name='n_addresses' type-id='1dc6a898' visibility='default' filepath='include/net/cfg80211.h' line='5649' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='768'>
-          <var-decl name='interface_modes' type-id='1dc6a898' visibility='default' filepath='include/net/cfg80211.h' line='5597' column='1'/>
+          <var-decl name='interface_modes' type-id='1dc6a898' visibility='default' filepath='include/net/cfg80211.h' line='5652' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='784'>
-          <var-decl name='max_acl_mac_addrs' type-id='1dc6a898' visibility='default' filepath='include/net/cfg80211.h' line='5599' column='1'/>
+          <var-decl name='max_acl_mac_addrs' type-id='1dc6a898' visibility='default' filepath='include/net/cfg80211.h' line='5654' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='800'>
-          <var-decl name='flags' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5601' column='1'/>
+          <var-decl name='flags' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5656' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='832'>
-          <var-decl name='regulatory_flags' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5601' column='1'/>
+          <var-decl name='regulatory_flags' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5656' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='864'>
-          <var-decl name='features' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5601' column='1'/>
+          <var-decl name='features' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5656' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='896'>
-          <var-decl name='ext_features' type-id='cef57087' visibility='default' filepath='include/net/cfg80211.h' line='5602' column='1'/>
+          <var-decl name='ext_features' type-id='cef57087' visibility='default' filepath='include/net/cfg80211.h' line='5657' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='992'>
-          <var-decl name='ap_sme_capa' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5604' column='1'/>
+          <var-decl name='ap_sme_capa' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5659' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1024'>
-          <var-decl name='signal_type' type-id='b8524648' visibility='default' filepath='include/net/cfg80211.h' line='5606' column='1'/>
+          <var-decl name='signal_type' type-id='b8524648' visibility='default' filepath='include/net/cfg80211.h' line='5661' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1056'>
-          <var-decl name='bss_priv_size' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='5608' column='1'/>
+          <var-decl name='bss_priv_size' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='5663' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1088'>
-          <var-decl name='max_scan_ssids' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5609' column='1'/>
+          <var-decl name='max_scan_ssids' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5664' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1096'>
-          <var-decl name='max_sched_scan_reqs' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5610' column='1'/>
+          <var-decl name='max_sched_scan_reqs' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5665' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1104'>
-          <var-decl name='max_sched_scan_ssids' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5611' column='1'/>
+          <var-decl name='max_sched_scan_ssids' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5666' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1112'>
-          <var-decl name='max_match_sets' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5612' column='1'/>
+          <var-decl name='max_match_sets' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5667' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1120'>
-          <var-decl name='max_scan_ie_len' type-id='1dc6a898' visibility='default' filepath='include/net/cfg80211.h' line='5613' column='1'/>
+          <var-decl name='max_scan_ie_len' type-id='1dc6a898' visibility='default' filepath='include/net/cfg80211.h' line='5668' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1136'>
-          <var-decl name='max_sched_scan_ie_len' type-id='1dc6a898' visibility='default' filepath='include/net/cfg80211.h' line='5614' column='1'/>
+          <var-decl name='max_sched_scan_ie_len' type-id='1dc6a898' visibility='default' filepath='include/net/cfg80211.h' line='5669' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1152'>
-          <var-decl name='max_sched_scan_plans' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5615' column='1'/>
+          <var-decl name='max_sched_scan_plans' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5670' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1184'>
-          <var-decl name='max_sched_scan_plan_interval' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5616' column='1'/>
+          <var-decl name='max_sched_scan_plan_interval' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5671' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1216'>
-          <var-decl name='max_sched_scan_plan_iterations' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5617' column='1'/>
+          <var-decl name='max_sched_scan_plan_iterations' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5672' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1248'>
-          <var-decl name='n_cipher_suites' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='5619' column='1'/>
+          <var-decl name='n_cipher_suites' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='5674' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1280'>
-          <var-decl name='cipher_suites' type-id='aded214c' visibility='default' filepath='include/net/cfg80211.h' line='5620' column='1'/>
+          <var-decl name='cipher_suites' type-id='aded214c' visibility='default' filepath='include/net/cfg80211.h' line='5675' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1344'>
-          <var-decl name='n_akm_suites' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='5622' column='1'/>
+          <var-decl name='n_akm_suites' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='5677' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1408'>
-          <var-decl name='akm_suites' type-id='aded214c' visibility='default' filepath='include/net/cfg80211.h' line='5623' column='1'/>
+          <var-decl name='akm_suites' type-id='aded214c' visibility='default' filepath='include/net/cfg80211.h' line='5678' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1472'>
-          <var-decl name='iftype_akm_suites' type-id='6196d741' visibility='default' filepath='include/net/cfg80211.h' line='5625' column='1'/>
+          <var-decl name='iftype_akm_suites' type-id='6196d741' visibility='default' filepath='include/net/cfg80211.h' line='5680' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1536'>
-          <var-decl name='num_iftype_akm_suites' type-id='f0981eeb' visibility='default' filepath='include/net/cfg80211.h' line='5626' column='1'/>
+          <var-decl name='num_iftype_akm_suites' type-id='f0981eeb' visibility='default' filepath='include/net/cfg80211.h' line='5681' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1568'>
-          <var-decl name='retry_short' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5628' column='1'/>
+          <var-decl name='retry_short' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5683' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1576'>
-          <var-decl name='retry_long' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5629' column='1'/>
+          <var-decl name='retry_long' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5684' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1600'>
-          <var-decl name='frag_threshold' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5630' column='1'/>
+          <var-decl name='frag_threshold' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5685' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1632'>
-          <var-decl name='rts_threshold' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5631' column='1'/>
+          <var-decl name='rts_threshold' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5686' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1664'>
-          <var-decl name='coverage_class' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5632' column='1'/>
+          <var-decl name='coverage_class' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5687' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1672'>
-          <var-decl name='fw_version' type-id='16dc656a' visibility='default' filepath='include/net/cfg80211.h' line='5634' column='1'/>
+          <var-decl name='fw_version' type-id='16dc656a' visibility='default' filepath='include/net/cfg80211.h' line='5689' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1952'>
-          <var-decl name='hw_version' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5635' column='1'/>
+          <var-decl name='hw_version' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5690' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1984'>
-          <var-decl name='wowlan' type-id='78a34b70' visibility='default' filepath='include/net/cfg80211.h' line='5638' column='1'/>
+          <var-decl name='wowlan' type-id='78a34b70' visibility='default' filepath='include/net/cfg80211.h' line='5693' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='2048'>
-          <var-decl name='wowlan_config' type-id='9d025b00' visibility='default' filepath='include/net/cfg80211.h' line='5639' column='1'/>
+          <var-decl name='wowlan_config' type-id='9d025b00' visibility='default' filepath='include/net/cfg80211.h' line='5694' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='2112'>
-          <var-decl name='max_remain_on_channel_duration' type-id='1dc6a898' visibility='default' filepath='include/net/cfg80211.h' line='5642' column='1'/>
+          <var-decl name='max_remain_on_channel_duration' type-id='1dc6a898' visibility='default' filepath='include/net/cfg80211.h' line='5697' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='2128'>
-          <var-decl name='max_num_pmkids' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5644' column='1'/>
+          <var-decl name='max_num_pmkids' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5699' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='2144'>
-          <var-decl name='available_antennas_tx' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5646' column='1'/>
+          <var-decl name='available_antennas_tx' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5701' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='2176'>
-          <var-decl name='available_antennas_rx' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5647' column='1'/>
+          <var-decl name='available_antennas_rx' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5702' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='2208'>
-          <var-decl name='probe_resp_offload' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5649' column='1'/>
+          <var-decl name='probe_resp_offload' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5704' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='2240'>
-          <var-decl name='extended_capabilities' type-id='bbaf3419' visibility='default' filepath='include/net/cfg80211.h' line='5651' column='1'/>
+          <var-decl name='extended_capabilities' type-id='bbaf3419' visibility='default' filepath='include/net/cfg80211.h' line='5706' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='2304'>
-          <var-decl name='extended_capabilities_mask' type-id='bbaf3419' visibility='default' filepath='include/net/cfg80211.h' line='5651' column='1'/>
+          <var-decl name='extended_capabilities_mask' type-id='bbaf3419' visibility='default' filepath='include/net/cfg80211.h' line='5706' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='2368'>
-          <var-decl name='extended_capabilities_len' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5652' column='1'/>
+          <var-decl name='extended_capabilities_len' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5707' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='2432'>
-          <var-decl name='iftype_ext_capab' type-id='3ca25343' visibility='default' filepath='include/net/cfg80211.h' line='5654' column='1'/>
+          <var-decl name='iftype_ext_capab' type-id='3ca25343' visibility='default' filepath='include/net/cfg80211.h' line='5709' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='2496'>
-          <var-decl name='num_iftype_ext_capab' type-id='f0981eeb' visibility='default' filepath='include/net/cfg80211.h' line='5655' column='1'/>
+          <var-decl name='num_iftype_ext_capab' type-id='f0981eeb' visibility='default' filepath='include/net/cfg80211.h' line='5710' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='2560'>
-          <var-decl name='privid' type-id='eaa32e2f' visibility='default' filepath='include/net/cfg80211.h' line='5657' column='1'/>
+          <var-decl name='privid' type-id='eaa32e2f' visibility='default' filepath='include/net/cfg80211.h' line='5712' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='2624'>
-          <var-decl name='bands' type-id='6816d906' visibility='default' filepath='include/net/cfg80211.h' line='5659' column='1'/>
+          <var-decl name='bands' type-id='6816d906' visibility='default' filepath='include/net/cfg80211.h' line='5714' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='3008'>
-          <var-decl name='reg_notifier' type-id='39ee8359' visibility='default' filepath='include/net/cfg80211.h' line='5661' column='1'/>
+          <var-decl name='reg_notifier' type-id='39ee8359' visibility='default' filepath='include/net/cfg80211.h' line='5716' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='3072'>
-          <var-decl name='regd' type-id='4e819401' visibility='default' filepath='include/net/cfg80211.h' line='5666' column='1'/>
+          <var-decl name='regd' type-id='4e819401' visibility='default' filepath='include/net/cfg80211.h' line='5721' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='3136'>
-          <var-decl name='dev' type-id='66e487eb' visibility='default' filepath='include/net/cfg80211.h' line='5668' column='1'/>
+          <var-decl name='dev' type-id='66e487eb' visibility='default' filepath='include/net/cfg80211.h' line='5723' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='10432'>
-          <var-decl name='registered' type-id='b50a4934' visibility='default' filepath='include/net/cfg80211.h' line='5670' column='1'/>
+          <var-decl name='registered' type-id='b50a4934' visibility='default' filepath='include/net/cfg80211.h' line='5725' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='10496'>
-          <var-decl name='debugfsdir' type-id='27675065' visibility='default' filepath='include/net/cfg80211.h' line='5672' column='1'/>
+          <var-decl name='debugfsdir' type-id='27675065' visibility='default' filepath='include/net/cfg80211.h' line='5727' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='10560'>
-          <var-decl name='ht_capa_mod_mask' type-id='81f1a1a8' visibility='default' filepath='include/net/cfg80211.h' line='5674' column='1'/>
+          <var-decl name='ht_capa_mod_mask' type-id='81f1a1a8' visibility='default' filepath='include/net/cfg80211.h' line='5729' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='10624'>
-          <var-decl name='vht_capa_mod_mask' type-id='fffb07a4' visibility='default' filepath='include/net/cfg80211.h' line='5675' column='1'/>
+          <var-decl name='vht_capa_mod_mask' type-id='fffb07a4' visibility='default' filepath='include/net/cfg80211.h' line='5730' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='10688'>
-          <var-decl name='wdev_list' type-id='72f469ec' visibility='default' filepath='include/net/cfg80211.h' line='5677' column='1'/>
+          <var-decl name='wdev_list' type-id='72f469ec' visibility='default' filepath='include/net/cfg80211.h' line='5732' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='10816'>
-          <var-decl name='_net' type-id='c9df1e6c' visibility='default' filepath='include/net/cfg80211.h' line='5679' column='1'/>
+          <var-decl name='_net' type-id='c9df1e6c' visibility='default' filepath='include/net/cfg80211.h' line='5734' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='10880'>
-          <var-decl name='coalesce' type-id='9ef499bf' visibility='default' filepath='include/net/cfg80211.h' line='5685' column='1'/>
+          <var-decl name='coalesce' type-id='9ef499bf' visibility='default' filepath='include/net/cfg80211.h' line='5740' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='10944'>
-          <var-decl name='vendor_commands' type-id='41e3f782' visibility='default' filepath='include/net/cfg80211.h' line='5687' column='1'/>
+          <var-decl name='vendor_commands' type-id='41e3f782' visibility='default' filepath='include/net/cfg80211.h' line='5742' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='11008'>
-          <var-decl name='vendor_events' type-id='b188cc4f' visibility='default' filepath='include/net/cfg80211.h' line='5688' column='1'/>
+          <var-decl name='vendor_events' type-id='b188cc4f' visibility='default' filepath='include/net/cfg80211.h' line='5743' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='11072'>
-          <var-decl name='n_vendor_commands' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='5689' column='1'/>
+          <var-decl name='n_vendor_commands' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='5744' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='11104'>
-          <var-decl name='n_vendor_events' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='5689' column='1'/>
+          <var-decl name='n_vendor_events' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='5744' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='11136'>
-          <var-decl name='max_ap_assoc_sta' type-id='1dc6a898' visibility='default' filepath='include/net/cfg80211.h' line='5691' column='1'/>
+          <var-decl name='max_ap_assoc_sta' type-id='1dc6a898' visibility='default' filepath='include/net/cfg80211.h' line='5746' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='11152'>
-          <var-decl name='max_num_csa_counters' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5693' column='1'/>
+          <var-decl name='max_num_csa_counters' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5748' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='11168'>
-          <var-decl name='bss_select_support' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5695' column='1'/>
+          <var-decl name='bss_select_support' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5750' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='11200'>
-          <var-decl name='nan_supported_bands' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5697' column='1'/>
+          <var-decl name='nan_supported_bands' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5752' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='11232'>
-          <var-decl name='txq_limit' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5699' column='1'/>
+          <var-decl name='txq_limit' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5754' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='11264'>
-          <var-decl name='txq_memory_limit' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5700' column='1'/>
+          <var-decl name='txq_memory_limit' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5755' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='11296'>
-          <var-decl name='txq_quantum' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5701' column='1'/>
+          <var-decl name='txq_quantum' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5756' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='11328'>
-          <var-decl name='tx_queue_len' type-id='7359adad' visibility='default' filepath='include/net/cfg80211.h' line='5703' column='1'/>
+          <var-decl name='tx_queue_len' type-id='7359adad' visibility='default' filepath='include/net/cfg80211.h' line='5758' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='11392'>
-          <var-decl name='support_mbssid' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5705' column='1'/>
+          <var-decl name='support_mbssid' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5760' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='11393'>
-          <var-decl name='support_only_he_mbssid' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5706' column='1'/>
+          <var-decl name='support_only_he_mbssid' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5761' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='11456'>
-          <var-decl name='pmsr_capa' type-id='5abfac26' visibility='default' filepath='include/net/cfg80211.h' line='5708' column='1'/>
+          <var-decl name='pmsr_capa' type-id='5abfac26' visibility='default' filepath='include/net/cfg80211.h' line='5763' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='11520'>
-          <var-decl name='tid_config_support' type-id='e7f44073' visibility='default' filepath='include/net/cfg80211.h' line='5713' column='1'/>
+          <var-decl name='tid_config_support' type-id='e7f44073' visibility='default' filepath='include/net/cfg80211.h' line='5768' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='11712'>
-          <var-decl name='max_data_retry_count' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5715' column='1'/>
+          <var-decl name='max_data_retry_count' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5770' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='11776'>
-          <var-decl name='sar_capa' type-id='cf61e92f' visibility='default' filepath='include/net/cfg80211.h' line='5717' column='1'/>
+          <var-decl name='sar_capa' type-id='cf61e92f' visibility='default' filepath='include/net/cfg80211.h' line='5772' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='11840'>
-          <var-decl name='rfkill' type-id='c5b94c75' visibility='default' filepath='include/net/cfg80211.h' line='5719' column='1'/>
+          <var-decl name='rfkill' type-id='c5b94c75' visibility='default' filepath='include/net/cfg80211.h' line='5774' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='11904'>
-          <var-decl name='mbssid_max_interfaces' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5721' column='1'/>
+          <var-decl name='mbssid_max_interfaces' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5776' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='11912'>
-          <var-decl name='ema_max_profile_periodicity' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5722' column='1'/>
+          <var-decl name='ema_max_profile_periodicity' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5777' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='11920'>
-          <var-decl name='max_num_akm_suites' type-id='1dc6a898' visibility='default' filepath='include/net/cfg80211.h' line='5723' column='1'/>
+          <var-decl name='max_num_akm_suites' type-id='1dc6a898' visibility='default' filepath='include/net/cfg80211.h' line='5778' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='11968'>
-          <var-decl name='' type-id='ac5ab6a4' visibility='default' filepath='include/net/cfg80211.h' line='5726' column='1'/>
+          <var-decl name='' type-id='ac5ab6a4' visibility='default' filepath='include/net/cfg80211.h' line='5781' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='12032'>
-          <var-decl name='android_backport_reserved2' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5727' column='1'/>
+          <var-decl name='android_backport_reserved2' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5782' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='12096'>
-          <var-decl name='android_backport_reserved3' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5728' column='1'/>
+          <var-decl name='android_backport_reserved3' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5783' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='12160'>
-          <var-decl name='android_backport_reserved4' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5729' column='1'/>
+          <var-decl name='android_backport_reserved4' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5784' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='12224'>
-          <var-decl name='android_backport_reserved5' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5730' column='1'/>
+          <var-decl name='android_backport_reserved5' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5785' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='12288'>
-          <var-decl name='android_backport_reserved6' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5731' column='1'/>
+          <var-decl name='android_backport_reserved6' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5786' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='12352'>
-          <var-decl name='android_backport_reserved7' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5732' column='1'/>
+          <var-decl name='android_backport_reserved7' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5787' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='12416'>
-          <var-decl name='android_backport_reserved8' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5733' column='1'/>
+          <var-decl name='android_backport_reserved8' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5788' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='12480'>
-          <var-decl name='android_backport_reserved9' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5734' column='1'/>
+          <var-decl name='android_backport_reserved9' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5789' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='12544'>
-          <var-decl name='android_backport_reserved10' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5735' column='1'/>
+          <var-decl name='android_backport_reserved10' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5790' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='12608'>
-          <var-decl name='android_vendor_data1' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5737' column='1'/>
+          <var-decl name='android_vendor_data1' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5792' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='12672'>
-          <var-decl name='android_vendor_data2' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5738' column='1'/>
+          <var-decl name='android_vendor_data2' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5793' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='12736'>
-          <var-decl name='android_vendor_data3' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5739' column='1'/>
+          <var-decl name='android_vendor_data3' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5794' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='12800'>
-          <var-decl name='android_vendor_data4' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5740' column='1'/>
+          <var-decl name='android_vendor_data4' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5795' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='12864'>
-          <var-decl name='android_vendor_data5' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5741' column='1'/>
+          <var-decl name='android_vendor_data5' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5796' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='12928'>
-          <var-decl name='android_vendor_data6' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5742' column='1'/>
+          <var-decl name='android_vendor_data6' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5797' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='12992'>
-          <var-decl name='android_vendor_data7' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5743' column='1'/>
+          <var-decl name='android_vendor_data7' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5798' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='13056'>
-          <var-decl name='android_vendor_data8' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5744' column='1'/>
+          <var-decl name='android_vendor_data8' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5799' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='13120'>
-          <var-decl name='android_vendor_data9' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5745' column='1'/>
+          <var-decl name='android_vendor_data9' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5800' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='13184'>
-          <var-decl name='android_vendor_data10' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5746' column='1'/>
+          <var-decl name='android_vendor_data10' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5801' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='13248'>
-          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5749' column='1'/>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5804' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='13312'>
-          <var-decl name='priv' type-id='e84913bd' visibility='default' filepath='include/net/cfg80211.h' line='5751' column='1'/>
+          <var-decl name='priv' type-id='e84913bd' visibility='default' filepath='include/net/cfg80211.h' line='5806' column='1'/>
         </data-member>
       </class-decl>
       <array-type-def dimensions='1' type-id='5cb8e7e2' size-in-bits='512' id='6853ab38'>
@@ -50582,6 +50741,9 @@
         </data-member>
       </class-decl>
       <pointer-type-def type-id='9e22fc50' size-in-bits='64' id='68a88aaa'/>
+      <array-type-def dimensions='1' type-id='b92c8d0d' size-in-bits='1600' id='68a92070'>
+        <subrange length='5' type-id='7ff19f0f' id='53010e10'/>
+      </array-type-def>
       <function-type size-in-bits='64' id='68adba6a'>
         <parameter type-id='b64ad7cb'/>
         <parameter type-id='c9982f26'/>
@@ -51482,7 +51644,7 @@
       </class-decl>
       <pointer-type-def type-id='3e1d184a' size-in-bits='64' id='6aee814c'/>
       <pointer-type-def type-id='74e7a035' size-in-bits='64' id='6af64a09'/>
-      <class-decl name='uncached_list' size-in-bits='192' is-struct='yes' visibility='default' filepath='net/ipv4/route.c' line='1505' column='1' id='6b1203e5'>
+      <class-decl name='uncached_list' size-in-bits='192' is-struct='yes' visibility='default' filepath='net/ipv6/route.c' line='130' column='1' id='6b1203e5'>
         <data-member access='public' layout-offset-in-bits='0'>
           <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='net/ipv4/route.c' line='1506' column='1'/>
         </data-member>
@@ -53268,6 +53430,7 @@
       <pointer-type-def type-id='bdcf5751' size-in-bits='64' id='7041aa49'/>
       <pointer-type-def type-id='5113b296' size-in-bits='64' id='70487b28'/>
       <pointer-type-def type-id='f5c90b3f' size-in-bits='64' id='704982b4'/>
+      <pointer-type-def type-id='5ea6264e' size-in-bits='64' id='704d2394'/>
       <class-decl name='writeback_control' size-in-bits='768' is-struct='yes' visibility='default' filepath='include/linux/writeback.h' line='51' column='1' id='705711f5'>
         <data-member access='public' layout-offset-in-bits='0'>
           <var-decl name='nr_to_write' type-id='bd54fe1a' visibility='default' filepath='include/linux/writeback.h' line='52' column='1'/>
@@ -53578,24 +53741,24 @@
           <var-decl name='queue_ctx' type-id='9a335021' visibility='default' filepath='block/blk-mq.h' line='12' column='1'/>
         </data-member>
       </class-decl>
-      <class-decl name='fasync_struct' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/linux/fs.h' line='1396' column='1' id='70c545cd'>
+      <class-decl name='fasync_struct' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/linux/fs.h' line='1402' column='1' id='70c545cd'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='fa_lock' type-id='ac16795b' visibility='default' filepath='include/linux/fs.h' line='1397' column='1'/>
+          <var-decl name='fa_lock' type-id='ac16795b' visibility='default' filepath='include/linux/fs.h' line='1403' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='64'>
-          <var-decl name='magic' type-id='95e97e5e' visibility='default' filepath='include/linux/fs.h' line='1398' column='1'/>
+          <var-decl name='magic' type-id='95e97e5e' visibility='default' filepath='include/linux/fs.h' line='1404' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='96'>
-          <var-decl name='fa_fd' type-id='95e97e5e' visibility='default' filepath='include/linux/fs.h' line='1399' column='1'/>
+          <var-decl name='fa_fd' type-id='95e97e5e' visibility='default' filepath='include/linux/fs.h' line='1405' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='128'>
-          <var-decl name='fa_next' type-id='5bb9c75d' visibility='default' filepath='include/linux/fs.h' line='1400' column='1'/>
+          <var-decl name='fa_next' type-id='5bb9c75d' visibility='default' filepath='include/linux/fs.h' line='1406' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='192'>
-          <var-decl name='fa_file' type-id='77e79a4b' visibility='default' filepath='include/linux/fs.h' line='1401' column='1'/>
+          <var-decl name='fa_file' type-id='77e79a4b' visibility='default' filepath='include/linux/fs.h' line='1407' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='256'>
-          <var-decl name='fa_rcu' type-id='e3d8ce29' visibility='default' filepath='include/linux/fs.h' line='1402' column='1'/>
+          <var-decl name='fa_rcu' type-id='e3d8ce29' visibility='default' filepath='include/linux/fs.h' line='1408' column='1'/>
         </data-member>
       </class-decl>
       <array-type-def dimensions='1' type-id='95e97e5e' size-in-bits='1536' id='70cd8d02'>
@@ -53645,24 +53808,24 @@
         </data-member>
       </class-decl>
       <pointer-type-def type-id='291d9c02' size-in-bits='64' id='7114e104'/>
-      <class-decl name='wiphy_coalesce_support' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='5174' column='1' id='7124a2a6'>
+      <class-decl name='wiphy_coalesce_support' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='5229' column='1' id='7124a2a6'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='n_rules' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='5175' column='1'/>
+          <var-decl name='n_rules' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='5230' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='32'>
-          <var-decl name='max_delay' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='5176' column='1'/>
+          <var-decl name='max_delay' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='5231' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='64'>
-          <var-decl name='n_patterns' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='5177' column='1'/>
+          <var-decl name='n_patterns' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='5232' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='96'>
-          <var-decl name='pattern_max_len' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='5178' column='1'/>
+          <var-decl name='pattern_max_len' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='5233' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='128'>
-          <var-decl name='pattern_min_len' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='5179' column='1'/>
+          <var-decl name='pattern_min_len' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='5234' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='160'>
-          <var-decl name='max_pkt_offset' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='5180' column='1'/>
+          <var-decl name='max_pkt_offset' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='5235' column='1'/>
         </data-member>
       </class-decl>
       <pointer-type-def type-id='4292193b' size-in-bits='64' id='7126cf8f'/>
@@ -55154,87 +55317,87 @@
       <pointer-type-def type-id='1e330b13' size-in-bits='64' id='74005b57'/>
       <pointer-type-def type-id='5cdc243f' size-in-bits='64' id='740a3d8b'/>
       <pointer-type-def type-id='f3d147c3' size-in-bits='64' id='740b5503'/>
-      <class-decl name='sched_class' size-in-bits='1728' is-struct='yes' visibility='default' filepath='kernel/sched/sched.h' line='2182' column='1' id='74191d27'>
+      <class-decl name='sched_class' size-in-bits='1728' is-struct='yes' visibility='default' filepath='kernel/sched/sched.h' line='2168' column='1' id='74191d27'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='uclamp_enabled' type-id='95e97e5e' visibility='default' filepath='kernel/sched/sched.h' line='2185' column='1'/>
+          <var-decl name='uclamp_enabled' type-id='95e97e5e' visibility='default' filepath='kernel/sched/sched.h' line='2171' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='64'>
-          <var-decl name='enqueue_task' type-id='7bca30b7' visibility='default' filepath='kernel/sched/sched.h' line='2188' column='1'/>
+          <var-decl name='enqueue_task' type-id='7bca30b7' visibility='default' filepath='kernel/sched/sched.h' line='2174' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='128'>
-          <var-decl name='dequeue_task' type-id='7bca30b7' visibility='default' filepath='kernel/sched/sched.h' line='2189' column='1'/>
+          <var-decl name='dequeue_task' type-id='7bca30b7' visibility='default' filepath='kernel/sched/sched.h' line='2175' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='192'>
-          <var-decl name='yield_task' type-id='d846ae3b' visibility='default' filepath='kernel/sched/sched.h' line='2190' column='1'/>
+          <var-decl name='yield_task' type-id='d846ae3b' visibility='default' filepath='kernel/sched/sched.h' line='2176' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='256'>
-          <var-decl name='yield_to_task' type-id='7dfe7cd1' visibility='default' filepath='kernel/sched/sched.h' line='2191' column='1'/>
+          <var-decl name='yield_to_task' type-id='7dfe7cd1' visibility='default' filepath='kernel/sched/sched.h' line='2177' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='320'>
-          <var-decl name='check_preempt_curr' type-id='7bca30b7' visibility='default' filepath='kernel/sched/sched.h' line='2193' column='1'/>
+          <var-decl name='check_preempt_curr' type-id='7bca30b7' visibility='default' filepath='kernel/sched/sched.h' line='2179' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='384'>
-          <var-decl name='pick_next_task' type-id='ba703a2c' visibility='default' filepath='kernel/sched/sched.h' line='2195' column='1'/>
+          <var-decl name='pick_next_task' type-id='ba703a2c' visibility='default' filepath='kernel/sched/sched.h' line='2181' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='448'>
-          <var-decl name='put_prev_task' type-id='604374c8' visibility='default' filepath='kernel/sched/sched.h' line='2197' column='1'/>
+          <var-decl name='put_prev_task' type-id='604374c8' visibility='default' filepath='kernel/sched/sched.h' line='2183' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='512'>
-          <var-decl name='set_next_task' type-id='f13b7179' visibility='default' filepath='kernel/sched/sched.h' line='2198' column='1'/>
+          <var-decl name='set_next_task' type-id='f13b7179' visibility='default' filepath='kernel/sched/sched.h' line='2184' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='576'>
-          <var-decl name='balance' type-id='5346c726' visibility='default' filepath='kernel/sched/sched.h' line='2201' column='1'/>
+          <var-decl name='balance' type-id='5346c726' visibility='default' filepath='kernel/sched/sched.h' line='2187' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='640'>
-          <var-decl name='select_task_rq' type-id='8d80ced8' visibility='default' filepath='kernel/sched/sched.h' line='2202' column='1'/>
+          <var-decl name='select_task_rq' type-id='8d80ced8' visibility='default' filepath='kernel/sched/sched.h' line='2188' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='704'>
-          <var-decl name='pick_task' type-id='ba703a2c' visibility='default' filepath='kernel/sched/sched.h' line='2204' column='1'/>
+          <var-decl name='pick_task' type-id='ba703a2c' visibility='default' filepath='kernel/sched/sched.h' line='2190' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='768'>
-          <var-decl name='migrate_task_rq' type-id='9d640202' visibility='default' filepath='kernel/sched/sched.h' line='2206' column='1'/>
+          <var-decl name='migrate_task_rq' type-id='9d640202' visibility='default' filepath='kernel/sched/sched.h' line='2192' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='832'>
-          <var-decl name='task_woken' type-id='604374c8' visibility='default' filepath='kernel/sched/sched.h' line='2208' column='1'/>
+          <var-decl name='task_woken' type-id='604374c8' visibility='default' filepath='kernel/sched/sched.h' line='2194' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='896'>
-          <var-decl name='set_cpus_allowed' type-id='41c42b69' visibility='default' filepath='kernel/sched/sched.h' line='2210' column='1'/>
+          <var-decl name='set_cpus_allowed' type-id='41c42b69' visibility='default' filepath='kernel/sched/sched.h' line='2196' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='960'>
-          <var-decl name='rq_online' type-id='d846ae3b' visibility='default' filepath='kernel/sched/sched.h' line='2214' column='1'/>
+          <var-decl name='rq_online' type-id='d846ae3b' visibility='default' filepath='kernel/sched/sched.h' line='2200' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1024'>
-          <var-decl name='rq_offline' type-id='d846ae3b' visibility='default' filepath='kernel/sched/sched.h' line='2215' column='1'/>
+          <var-decl name='rq_offline' type-id='d846ae3b' visibility='default' filepath='kernel/sched/sched.h' line='2201' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1088'>
-          <var-decl name='find_lock_rq' type-id='64c408c1' visibility='default' filepath='kernel/sched/sched.h' line='2217' column='1'/>
+          <var-decl name='find_lock_rq' type-id='64c408c1' visibility='default' filepath='kernel/sched/sched.h' line='2203' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1152'>
-          <var-decl name='task_tick' type-id='7bca30b7' visibility='default' filepath='kernel/sched/sched.h' line='2220' column='1'/>
+          <var-decl name='task_tick' type-id='7bca30b7' visibility='default' filepath='kernel/sched/sched.h' line='2206' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1216'>
-          <var-decl name='task_fork' type-id='1c9e19fb' visibility='default' filepath='kernel/sched/sched.h' line='2221' column='1'/>
+          <var-decl name='task_fork' type-id='1c9e19fb' visibility='default' filepath='kernel/sched/sched.h' line='2207' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1280'>
-          <var-decl name='task_dead' type-id='1c9e19fb' visibility='default' filepath='kernel/sched/sched.h' line='2222' column='1'/>
+          <var-decl name='task_dead' type-id='1c9e19fb' visibility='default' filepath='kernel/sched/sched.h' line='2208' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1344'>
-          <var-decl name='switched_from' type-id='604374c8' visibility='default' filepath='kernel/sched/sched.h' line='2229' column='1'/>
+          <var-decl name='switched_from' type-id='604374c8' visibility='default' filepath='kernel/sched/sched.h' line='2215' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1408'>
-          <var-decl name='switched_to' type-id='604374c8' visibility='default' filepath='kernel/sched/sched.h' line='2230' column='1'/>
+          <var-decl name='switched_to' type-id='604374c8' visibility='default' filepath='kernel/sched/sched.h' line='2216' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1472'>
-          <var-decl name='prio_changed' type-id='7bca30b7' visibility='default' filepath='kernel/sched/sched.h' line='2231' column='1'/>
+          <var-decl name='prio_changed' type-id='7bca30b7' visibility='default' filepath='kernel/sched/sched.h' line='2217' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1536'>
-          <var-decl name='get_rr_interval' type-id='c79c9f4c' visibility='default' filepath='kernel/sched/sched.h' line='2234' column='1'/>
+          <var-decl name='get_rr_interval' type-id='c79c9f4c' visibility='default' filepath='kernel/sched/sched.h' line='2220' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1600'>
-          <var-decl name='update_curr' type-id='d846ae3b' visibility='default' filepath='kernel/sched/sched.h' line='2237' column='1'/>
+          <var-decl name='update_curr' type-id='d846ae3b' visibility='default' filepath='kernel/sched/sched.h' line='2223' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1664'>
-          <var-decl name='task_change_group' type-id='9d640202' visibility='default' filepath='kernel/sched/sched.h' line='2243' column='1'/>
+          <var-decl name='task_change_group' type-id='9d640202' visibility='default' filepath='kernel/sched/sched.h' line='2229' column='1'/>
         </data-member>
       </class-decl>
       <pointer-type-def type-id='c2d135ef' size-in-bits='64' id='741cc96e'/>
@@ -55244,18 +55407,18 @@
         <return type-id='95e97e5e'/>
       </function-type>
       <pointer-type-def type-id='395aad7e' size-in-bits='64' id='74287ea0'/>
-      <class-decl name='cfg80211_match_set' size-in-bits='544' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='2619' column='1' id='7430554e'>
+      <class-decl name='cfg80211_match_set' size-in-bits='544' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='2651' column='1' id='7430554e'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='ssid' type-id='0c960fcf' visibility='default' filepath='include/net/cfg80211.h' line='2620' column='1'/>
+          <var-decl name='ssid' type-id='0c960fcf' visibility='default' filepath='include/net/cfg80211.h' line='2652' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='264'>
-          <var-decl name='bssid' type-id='cf1a4160' visibility='default' filepath='include/net/cfg80211.h' line='2621' column='1'/>
+          <var-decl name='bssid' type-id='cf1a4160' visibility='default' filepath='include/net/cfg80211.h' line='2653' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='320'>
-          <var-decl name='rssi_thold' type-id='a7832498' visibility='default' filepath='include/net/cfg80211.h' line='2622' column='1'/>
+          <var-decl name='rssi_thold' type-id='a7832498' visibility='default' filepath='include/net/cfg80211.h' line='2654' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='352'>
-          <var-decl name='per_band_rssi_thold' type-id='2cccef85' visibility='default' filepath='include/net/cfg80211.h' line='2623' column='1'/>
+          <var-decl name='per_band_rssi_thold' type-id='2cccef85' visibility='default' filepath='include/net/cfg80211.h' line='2655' column='1'/>
         </data-member>
       </class-decl>
       <pointer-type-def type-id='63df6bcc' size-in-bits='64' id='7432d5be'/>
@@ -55933,18 +56096,18 @@
         <parameter type-id='37175e4d'/>
         <return type-id='48b5725f'/>
       </function-type>
-      <class-decl name='cfg80211_pkt_pattern' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='3396' column='1' id='76959226'>
+      <class-decl name='cfg80211_pkt_pattern' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='3428' column='1' id='76959226'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='mask' type-id='bbaf3419' visibility='default' filepath='include/net/cfg80211.h' line='3397' column='1'/>
+          <var-decl name='mask' type-id='bbaf3419' visibility='default' filepath='include/net/cfg80211.h' line='3429' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='64'>
-          <var-decl name='pattern' type-id='bbaf3419' visibility='default' filepath='include/net/cfg80211.h' line='3397' column='1'/>
+          <var-decl name='pattern' type-id='bbaf3419' visibility='default' filepath='include/net/cfg80211.h' line='3429' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='128'>
-          <var-decl name='pattern_len' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='3398' column='1'/>
+          <var-decl name='pattern_len' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='3430' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='160'>
-          <var-decl name='pkt_offset' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='3399' column='1'/>
+          <var-decl name='pkt_offset' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='3431' column='1'/>
         </data-member>
       </class-decl>
       <array-type-def dimensions='1' type-id='f22a8abb' size-in-bits='512' id='7698c98a'>
@@ -56628,6 +56791,7 @@
       </function-type>
       <pointer-type-def type-id='2d8429ef' size-in-bits='64' id='7801a3a3'/>
       <pointer-type-def type-id='fcc07cbf' size-in-bits='64' id='78041e8f'/>
+      <pointer-type-def type-id='3713d87e' size-in-bits='64' id='7806f534'/>
       <function-type size-in-bits='64' id='78117ea6'>
         <parameter type-id='7544e824'/>
         <parameter type-id='b11825ce'/>
@@ -56962,15 +57126,15 @@
           <var-decl name='__pg_advance' type-id='95e97e5e' visibility='default' filepath='include/linux/scatterlist.h' line='410' column='1'/>
         </data-member>
       </class-decl>
-      <class-decl name='hid_usage_id' size-in-bits='96' is-struct='yes' visibility='default' filepath='include/linux/hid.h' line='704' column='1' id='78e57306'>
+      <class-decl name='hid_usage_id' size-in-bits='96' is-struct='yes' visibility='default' filepath='include/linux/hid.h' line='705' column='1' id='78e57306'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='usage_hid' type-id='3f1a6b60' visibility='default' filepath='include/linux/hid.h' line='705' column='1'/>
+          <var-decl name='usage_hid' type-id='3f1a6b60' visibility='default' filepath='include/linux/hid.h' line='706' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='32'>
-          <var-decl name='usage_type' type-id='3f1a6b60' visibility='default' filepath='include/linux/hid.h' line='706' column='1'/>
+          <var-decl name='usage_type' type-id='3f1a6b60' visibility='default' filepath='include/linux/hid.h' line='707' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='64'>
-          <var-decl name='usage_code' type-id='3f1a6b60' visibility='default' filepath='include/linux/hid.h' line='707' column='1'/>
+          <var-decl name='usage_code' type-id='3f1a6b60' visibility='default' filepath='include/linux/hid.h' line='708' column='1'/>
         </data-member>
       </class-decl>
       <pointer-type-def type-id='1fc93694' size-in-bits='64' id='78e7ce8e'/>
@@ -57049,7 +57213,7 @@
         <return type-id='48b5725f'/>
       </function-type>
       <pointer-type-def type-id='d17d9181' size-in-bits='64' id='790a00b9'/>
-      <enum-decl name='nl80211_reg_initiator' filepath='include/uapi/linux/nl80211.h' line='4251' column='1' id='790cc131'>
+      <enum-decl name='nl80211_reg_initiator' filepath='include/uapi/linux/nl80211.h' line='4276' column='1' id='790cc131'>
         <underlying-type type-id='9cac1fee'/>
         <enumerator name='NL80211_REGDOM_SET_BY_CORE' value='0'/>
         <enumerator name='NL80211_REGDOM_SET_BY_USER' value='1'/>
@@ -59210,114 +59374,114 @@
         </data-member>
       </class-decl>
       <pointer-type-def type-id='c551f1b5' size-in-bits='64' id='7dfe7cd1'/>
-      <class-decl name='file_operations' size-in-bits='2304' is-struct='yes' visibility='default' filepath='include/linux/fs.h' line='2049' column='1' id='7dffcde2'>
+      <class-decl name='file_operations' size-in-bits='2304' is-struct='yes' visibility='default' filepath='include/linux/fs.h' line='2055' column='1' id='7dffcde2'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='owner' type-id='2730d015' visibility='default' filepath='include/linux/fs.h' line='2050' column='1'/>
+          <var-decl name='owner' type-id='2730d015' visibility='default' filepath='include/linux/fs.h' line='2056' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='64'>
-          <var-decl name='llseek' type-id='07ebb4cd' visibility='default' filepath='include/linux/fs.h' line='2051' column='1'/>
+          <var-decl name='llseek' type-id='07ebb4cd' visibility='default' filepath='include/linux/fs.h' line='2057' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='128'>
-          <var-decl name='read' type-id='4d8f5625' visibility='default' filepath='include/linux/fs.h' line='2052' column='1'/>
+          <var-decl name='read' type-id='4d8f5625' visibility='default' filepath='include/linux/fs.h' line='2058' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='192'>
-          <var-decl name='write' type-id='5f29549c' visibility='default' filepath='include/linux/fs.h' line='2053' column='1'/>
+          <var-decl name='write' type-id='5f29549c' visibility='default' filepath='include/linux/fs.h' line='2059' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='256'>
-          <var-decl name='read_iter' type-id='227e209d' visibility='default' filepath='include/linux/fs.h' line='2054' column='1'/>
+          <var-decl name='read_iter' type-id='227e209d' visibility='default' filepath='include/linux/fs.h' line='2060' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='320'>
-          <var-decl name='write_iter' type-id='227e209d' visibility='default' filepath='include/linux/fs.h' line='2055' column='1'/>
+          <var-decl name='write_iter' type-id='227e209d' visibility='default' filepath='include/linux/fs.h' line='2061' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='384'>
-          <var-decl name='iopoll' type-id='6c4618be' visibility='default' filepath='include/linux/fs.h' line='2056' column='1'/>
+          <var-decl name='iopoll' type-id='6c4618be' visibility='default' filepath='include/linux/fs.h' line='2062' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='448'>
-          <var-decl name='iterate' type-id='42beb73a' visibility='default' filepath='include/linux/fs.h' line='2057' column='1'/>
+          <var-decl name='iterate' type-id='42beb73a' visibility='default' filepath='include/linux/fs.h' line='2063' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='512'>
-          <var-decl name='iterate_shared' type-id='42beb73a' visibility='default' filepath='include/linux/fs.h' line='2058' column='1'/>
+          <var-decl name='iterate_shared' type-id='42beb73a' visibility='default' filepath='include/linux/fs.h' line='2064' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='576'>
-          <var-decl name='poll' type-id='4d01ede7' visibility='default' filepath='include/linux/fs.h' line='2059' column='1'/>
+          <var-decl name='poll' type-id='4d01ede7' visibility='default' filepath='include/linux/fs.h' line='2065' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='640'>
-          <var-decl name='unlocked_ioctl' type-id='fc7daf55' visibility='default' filepath='include/linux/fs.h' line='2060' column='1'/>
+          <var-decl name='unlocked_ioctl' type-id='fc7daf55' visibility='default' filepath='include/linux/fs.h' line='2066' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='704'>
-          <var-decl name='compat_ioctl' type-id='fc7daf55' visibility='default' filepath='include/linux/fs.h' line='2061' column='1'/>
+          <var-decl name='compat_ioctl' type-id='fc7daf55' visibility='default' filepath='include/linux/fs.h' line='2067' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='768'>
-          <var-decl name='mmap' type-id='8ea2626c' visibility='default' filepath='include/linux/fs.h' line='2062' column='1'/>
+          <var-decl name='mmap' type-id='8ea2626c' visibility='default' filepath='include/linux/fs.h' line='2068' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='832'>
-          <var-decl name='mmap_supported_flags' type-id='7359adad' visibility='default' filepath='include/linux/fs.h' line='2063' column='1'/>
+          <var-decl name='mmap_supported_flags' type-id='7359adad' visibility='default' filepath='include/linux/fs.h' line='2069' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='896'>
-          <var-decl name='open' type-id='47800058' visibility='default' filepath='include/linux/fs.h' line='2064' column='1'/>
+          <var-decl name='open' type-id='47800058' visibility='default' filepath='include/linux/fs.h' line='2070' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='960'>
-          <var-decl name='flush' type-id='5ddef2dd' visibility='default' filepath='include/linux/fs.h' line='2065' column='1'/>
+          <var-decl name='flush' type-id='5ddef2dd' visibility='default' filepath='include/linux/fs.h' line='2071' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1024'>
-          <var-decl name='release' type-id='47800058' visibility='default' filepath='include/linux/fs.h' line='2066' column='1'/>
+          <var-decl name='release' type-id='47800058' visibility='default' filepath='include/linux/fs.h' line='2072' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1088'>
-          <var-decl name='fsync' type-id='31cc9254' visibility='default' filepath='include/linux/fs.h' line='2067' column='1'/>
+          <var-decl name='fsync' type-id='31cc9254' visibility='default' filepath='include/linux/fs.h' line='2073' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1152'>
-          <var-decl name='fasync' type-id='b94ac371' visibility='default' filepath='include/linux/fs.h' line='2068' column='1'/>
+          <var-decl name='fasync' type-id='b94ac371' visibility='default' filepath='include/linux/fs.h' line='2074' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1216'>
-          <var-decl name='lock' type-id='12f0ff82' visibility='default' filepath='include/linux/fs.h' line='2069' column='1'/>
+          <var-decl name='lock' type-id='12f0ff82' visibility='default' filepath='include/linux/fs.h' line='2075' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1280'>
-          <var-decl name='sendpage' type-id='40da47a8' visibility='default' filepath='include/linux/fs.h' line='2070' column='1'/>
+          <var-decl name='sendpage' type-id='40da47a8' visibility='default' filepath='include/linux/fs.h' line='2076' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1344'>
-          <var-decl name='get_unmapped_area' type-id='d44a8cec' visibility='default' filepath='include/linux/fs.h' line='2071' column='1'/>
+          <var-decl name='get_unmapped_area' type-id='d44a8cec' visibility='default' filepath='include/linux/fs.h' line='2077' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1408'>
-          <var-decl name='check_flags' type-id='7f416e10' visibility='default' filepath='include/linux/fs.h' line='2072' column='1'/>
+          <var-decl name='check_flags' type-id='7f416e10' visibility='default' filepath='include/linux/fs.h' line='2078' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1472'>
-          <var-decl name='flock' type-id='12f0ff82' visibility='default' filepath='include/linux/fs.h' line='2073' column='1'/>
+          <var-decl name='flock' type-id='12f0ff82' visibility='default' filepath='include/linux/fs.h' line='2079' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1536'>
-          <var-decl name='splice_write' type-id='b22f4610' visibility='default' filepath='include/linux/fs.h' line='2074' column='1'/>
+          <var-decl name='splice_write' type-id='b22f4610' visibility='default' filepath='include/linux/fs.h' line='2080' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1600'>
-          <var-decl name='splice_read' type-id='72cd68b0' visibility='default' filepath='include/linux/fs.h' line='2075' column='1'/>
+          <var-decl name='splice_read' type-id='72cd68b0' visibility='default' filepath='include/linux/fs.h' line='2081' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1664'>
-          <var-decl name='setlease' type-id='87e3d3e2' visibility='default' filepath='include/linux/fs.h' line='2076' column='1'/>
+          <var-decl name='setlease' type-id='87e3d3e2' visibility='default' filepath='include/linux/fs.h' line='2082' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1728'>
-          <var-decl name='fallocate' type-id='a53e2328' visibility='default' filepath='include/linux/fs.h' line='2077' column='1'/>
+          <var-decl name='fallocate' type-id='a53e2328' visibility='default' filepath='include/linux/fs.h' line='2083' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1792'>
-          <var-decl name='show_fdinfo' type-id='eda08098' visibility='default' filepath='include/linux/fs.h' line='2079' column='1'/>
+          <var-decl name='show_fdinfo' type-id='eda08098' visibility='default' filepath='include/linux/fs.h' line='2085' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1856'>
-          <var-decl name='copy_file_range' type-id='d0882d6b' visibility='default' filepath='include/linux/fs.h' line='2083' column='1'/>
+          <var-decl name='copy_file_range' type-id='d0882d6b' visibility='default' filepath='include/linux/fs.h' line='2089' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1920'>
-          <var-decl name='remap_file_range' type-id='c1de1086' visibility='default' filepath='include/linux/fs.h' line='2085' column='1'/>
+          <var-decl name='remap_file_range' type-id='c1de1086' visibility='default' filepath='include/linux/fs.h' line='2091' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1984'>
-          <var-decl name='fadvise' type-id='31cc9254' visibility='default' filepath='include/linux/fs.h' line='2088' column='1'/>
+          <var-decl name='fadvise' type-id='31cc9254' visibility='default' filepath='include/linux/fs.h' line='2094' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='2048'>
-          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='2090' column='1'/>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='2096' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='2112'>
-          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='2091' column='1'/>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='2097' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='2176'>
-          <var-decl name='android_kabi_reserved3' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='2092' column='1'/>
+          <var-decl name='android_kabi_reserved3' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='2098' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='2240'>
-          <var-decl name='android_kabi_reserved4' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='2093' column='1'/>
+          <var-decl name='android_kabi_reserved4' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='2099' column='1'/>
         </data-member>
       </class-decl>
       <function-type size-in-bits='64' id='7e019027'>
@@ -60227,39 +60391,39 @@
         <parameter type-id='f0981eeb'/>
         <return type-id='95e97e5e'/>
       </function-type>
-      <class-decl name='cfg80211_wowlan' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='3455' column='1' id='80126e32'>
+      <class-decl name='cfg80211_wowlan' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='3487' column='1' id='80126e32'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='any' type-id='b50a4934' visibility='default' filepath='include/net/cfg80211.h' line='3456' column='1'/>
+          <var-decl name='any' type-id='b50a4934' visibility='default' filepath='include/net/cfg80211.h' line='3488' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='8'>
-          <var-decl name='disconnect' type-id='b50a4934' visibility='default' filepath='include/net/cfg80211.h' line='3456' column='1'/>
+          <var-decl name='disconnect' type-id='b50a4934' visibility='default' filepath='include/net/cfg80211.h' line='3488' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='16'>
-          <var-decl name='magic_pkt' type-id='b50a4934' visibility='default' filepath='include/net/cfg80211.h' line='3456' column='1'/>
+          <var-decl name='magic_pkt' type-id='b50a4934' visibility='default' filepath='include/net/cfg80211.h' line='3488' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='24'>
-          <var-decl name='gtk_rekey_failure' type-id='b50a4934' visibility='default' filepath='include/net/cfg80211.h' line='3456' column='1'/>
+          <var-decl name='gtk_rekey_failure' type-id='b50a4934' visibility='default' filepath='include/net/cfg80211.h' line='3488' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='32'>
-          <var-decl name='eap_identity_req' type-id='b50a4934' visibility='default' filepath='include/net/cfg80211.h' line='3457' column='1'/>
+          <var-decl name='eap_identity_req' type-id='b50a4934' visibility='default' filepath='include/net/cfg80211.h' line='3489' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='40'>
-          <var-decl name='four_way_handshake' type-id='b50a4934' visibility='default' filepath='include/net/cfg80211.h' line='3457' column='1'/>
+          <var-decl name='four_way_handshake' type-id='b50a4934' visibility='default' filepath='include/net/cfg80211.h' line='3489' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='48'>
-          <var-decl name='rfkill_release' type-id='b50a4934' visibility='default' filepath='include/net/cfg80211.h' line='3458' column='1'/>
+          <var-decl name='rfkill_release' type-id='b50a4934' visibility='default' filepath='include/net/cfg80211.h' line='3490' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='64'>
-          <var-decl name='patterns' type-id='1ed3660c' visibility='default' filepath='include/net/cfg80211.h' line='3459' column='1'/>
+          <var-decl name='patterns' type-id='1ed3660c' visibility='default' filepath='include/net/cfg80211.h' line='3491' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='128'>
-          <var-decl name='tcp' type-id='e0c1c1b8' visibility='default' filepath='include/net/cfg80211.h' line='3460' column='1'/>
+          <var-decl name='tcp' type-id='e0c1c1b8' visibility='default' filepath='include/net/cfg80211.h' line='3492' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='192'>
-          <var-decl name='n_patterns' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='3461' column='1'/>
+          <var-decl name='n_patterns' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='3493' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='256'>
-          <var-decl name='nd_config' type-id='9e4995c7' visibility='default' filepath='include/net/cfg80211.h' line='3462' column='1'/>
+          <var-decl name='nd_config' type-id='9e4995c7' visibility='default' filepath='include/net/cfg80211.h' line='3494' column='1'/>
         </data-member>
       </class-decl>
       <pointer-type-def type-id='d430d6a9' size-in-bits='64' id='801bfa75'/>
@@ -60829,6 +60993,11 @@
         <parameter type-id='9e99ecc1'/>
         <return type-id='48b5725f'/>
       </function-type>
+      <function-type size-in-bits='64' id='80b5c3cd'>
+        <parameter type-id='42c8f564'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='48b5725f'/>
+      </function-type>
       <class-decl name='nf_conntrack_tuple_hash' size-in-bits='448' is-struct='yes' visibility='default' filepath='include/net/netfilter/nf_conntrack_tuple.h' line='119' column='1' id='80b664d7'>
         <data-member access='public' layout-offset-in-bits='0'>
           <var-decl name='hnnode' type-id='5bd248e7' visibility='default' filepath='include/net/netfilter/nf_conntrack_tuple.h' line='120' column='1'/>
@@ -61592,7 +61761,7 @@
         <parameter type-id='7b4ee155'/>
         <return type-id='95e97e5e'/>
       </function-type>
-      <enum-decl name='hid_battery_status' filepath='include/linux/hid.h' line='547' column='1' id='82d56eba'>
+      <enum-decl name='hid_battery_status' filepath='include/linux/hid.h' line='548' column='1' id='82d56eba'>
         <underlying-type type-id='9cac1fee'/>
         <enumerator name='HID_BATTERY_UNKNOWN' value='0'/>
         <enumerator name='HID_BATTERY_QUERIED' value='1'/>
@@ -63417,7 +63586,7 @@
       </array-type-def>
       <pointer-type-def type-id='ceff8680' size-in-bits='64' id='8640fd9e'/>
       <pointer-type-def type-id='b2d59d2a' size-in-bits='64' id='86462700'/>
-      <enum-decl name='nl80211_iftype' filepath='include/uapi/linux/nl80211.h' line='3402' column='1' id='86505f90'>
+      <enum-decl name='nl80211_iftype' filepath='include/uapi/linux/nl80211.h' line='3427' column='1' id='86505f90'>
         <underlying-type type-id='9cac1fee'/>
         <enumerator name='NL80211_IFTYPE_UNSPECIFIED' value='0'/>
         <enumerator name='NL80211_IFTYPE_ADHOC' value='1'/>
@@ -63761,93 +63930,93 @@
         <parameter type-id='231422bf'/>
         <return type-id='95e97e5e'/>
       </function-type>
-      <class-decl name='super_operations' size-in-bits='1856' is-struct='yes' visibility='default' filepath='include/linux/fs.h' line='2183' column='1' id='874691ab'>
+      <class-decl name='super_operations' size-in-bits='1856' is-struct='yes' visibility='default' filepath='include/linux/fs.h' line='2189' column='1' id='874691ab'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='alloc_inode' type-id='e8c4dba4' visibility='default' filepath='include/linux/fs.h' line='2184' column='1'/>
+          <var-decl name='alloc_inode' type-id='e8c4dba4' visibility='default' filepath='include/linux/fs.h' line='2190' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='64'>
-          <var-decl name='destroy_inode' type-id='4f3d95df' visibility='default' filepath='include/linux/fs.h' line='2185' column='1'/>
+          <var-decl name='destroy_inode' type-id='4f3d95df' visibility='default' filepath='include/linux/fs.h' line='2191' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='128'>
-          <var-decl name='free_inode' type-id='4f3d95df' visibility='default' filepath='include/linux/fs.h' line='2186' column='1'/>
+          <var-decl name='free_inode' type-id='4f3d95df' visibility='default' filepath='include/linux/fs.h' line='2192' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='192'>
-          <var-decl name='dirty_inode' type-id='5f5506f6' visibility='default' filepath='include/linux/fs.h' line='2188' column='1'/>
+          <var-decl name='dirty_inode' type-id='5f5506f6' visibility='default' filepath='include/linux/fs.h' line='2194' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='256'>
-          <var-decl name='write_inode' type-id='fd780be6' visibility='default' filepath='include/linux/fs.h' line='2189' column='1'/>
+          <var-decl name='write_inode' type-id='fd780be6' visibility='default' filepath='include/linux/fs.h' line='2195' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='320'>
-          <var-decl name='drop_inode' type-id='28ba4492' visibility='default' filepath='include/linux/fs.h' line='2190' column='1'/>
+          <var-decl name='drop_inode' type-id='28ba4492' visibility='default' filepath='include/linux/fs.h' line='2196' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='384'>
-          <var-decl name='evict_inode' type-id='4f3d95df' visibility='default' filepath='include/linux/fs.h' line='2191' column='1'/>
+          <var-decl name='evict_inode' type-id='4f3d95df' visibility='default' filepath='include/linux/fs.h' line='2197' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='448'>
-          <var-decl name='put_super' type-id='1ff54a45' visibility='default' filepath='include/linux/fs.h' line='2192' column='1'/>
+          <var-decl name='put_super' type-id='1ff54a45' visibility='default' filepath='include/linux/fs.h' line='2198' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='512'>
-          <var-decl name='sync_fs' type-id='dcab5203' visibility='default' filepath='include/linux/fs.h' line='2193' column='1'/>
+          <var-decl name='sync_fs' type-id='dcab5203' visibility='default' filepath='include/linux/fs.h' line='2199' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='576'>
-          <var-decl name='freeze_super' type-id='d2f4c704' visibility='default' filepath='include/linux/fs.h' line='2194' column='1'/>
+          <var-decl name='freeze_super' type-id='d2f4c704' visibility='default' filepath='include/linux/fs.h' line='2200' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='640'>
-          <var-decl name='freeze_fs' type-id='d2f4c704' visibility='default' filepath='include/linux/fs.h' line='2195' column='1'/>
+          <var-decl name='freeze_fs' type-id='d2f4c704' visibility='default' filepath='include/linux/fs.h' line='2201' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='704'>
-          <var-decl name='thaw_super' type-id='d2f4c704' visibility='default' filepath='include/linux/fs.h' line='2196' column='1'/>
+          <var-decl name='thaw_super' type-id='d2f4c704' visibility='default' filepath='include/linux/fs.h' line='2202' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='768'>
-          <var-decl name='unfreeze_fs' type-id='d2f4c704' visibility='default' filepath='include/linux/fs.h' line='2197' column='1'/>
+          <var-decl name='unfreeze_fs' type-id='d2f4c704' visibility='default' filepath='include/linux/fs.h' line='2203' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='832'>
-          <var-decl name='statfs' type-id='35646c79' visibility='default' filepath='include/linux/fs.h' line='2198' column='1'/>
+          <var-decl name='statfs' type-id='35646c79' visibility='default' filepath='include/linux/fs.h' line='2204' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='896'>
-          <var-decl name='remount_fs' type-id='552c8f87' visibility='default' filepath='include/linux/fs.h' line='2199' column='1'/>
+          <var-decl name='remount_fs' type-id='552c8f87' visibility='default' filepath='include/linux/fs.h' line='2205' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='960'>
-          <var-decl name='umount_begin' type-id='1ff54a45' visibility='default' filepath='include/linux/fs.h' line='2200' column='1'/>
+          <var-decl name='umount_begin' type-id='1ff54a45' visibility='default' filepath='include/linux/fs.h' line='2206' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1024'>
-          <var-decl name='show_options' type-id='c94f6b13' visibility='default' filepath='include/linux/fs.h' line='2202' column='1'/>
+          <var-decl name='show_options' type-id='c94f6b13' visibility='default' filepath='include/linux/fs.h' line='2208' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1088'>
-          <var-decl name='show_devname' type-id='c94f6b13' visibility='default' filepath='include/linux/fs.h' line='2203' column='1'/>
+          <var-decl name='show_devname' type-id='c94f6b13' visibility='default' filepath='include/linux/fs.h' line='2209' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1152'>
-          <var-decl name='show_path' type-id='c94f6b13' visibility='default' filepath='include/linux/fs.h' line='2204' column='1'/>
+          <var-decl name='show_path' type-id='c94f6b13' visibility='default' filepath='include/linux/fs.h' line='2210' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1216'>
-          <var-decl name='show_stats' type-id='c94f6b13' visibility='default' filepath='include/linux/fs.h' line='2205' column='1'/>
+          <var-decl name='show_stats' type-id='c94f6b13' visibility='default' filepath='include/linux/fs.h' line='2211' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1280'>
-          <var-decl name='quota_read' type-id='e295c77c' visibility='default' filepath='include/linux/fs.h' line='2207' column='1'/>
+          <var-decl name='quota_read' type-id='e295c77c' visibility='default' filepath='include/linux/fs.h' line='2213' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1344'>
-          <var-decl name='quota_write' type-id='a9b95107' visibility='default' filepath='include/linux/fs.h' line='2208' column='1'/>
+          <var-decl name='quota_write' type-id='a9b95107' visibility='default' filepath='include/linux/fs.h' line='2214' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1408'>
-          <var-decl name='get_dquots' type-id='ae02292a' visibility='default' filepath='include/linux/fs.h' line='2209' column='1'/>
+          <var-decl name='get_dquots' type-id='ae02292a' visibility='default' filepath='include/linux/fs.h' line='2215' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1472'>
-          <var-decl name='nr_cached_objects' type-id='c4facf61' visibility='default' filepath='include/linux/fs.h' line='2211' column='1'/>
+          <var-decl name='nr_cached_objects' type-id='c4facf61' visibility='default' filepath='include/linux/fs.h' line='2217' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1536'>
-          <var-decl name='free_cached_objects' type-id='c4facf61' visibility='default' filepath='include/linux/fs.h' line='2213' column='1'/>
+          <var-decl name='free_cached_objects' type-id='c4facf61' visibility='default' filepath='include/linux/fs.h' line='2219' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1600'>
-          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='2216' column='1'/>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='2222' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1664'>
-          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='2217' column='1'/>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='2223' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1728'>
-          <var-decl name='android_kabi_reserved3' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='2218' column='1'/>
+          <var-decl name='android_kabi_reserved3' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='2224' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1792'>
-          <var-decl name='android_kabi_reserved4' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='2219' column='1'/>
+          <var-decl name='android_kabi_reserved4' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='2225' column='1'/>
         </data-member>
       </class-decl>
       <qualified-type-def type-id='b1fadf8a' const='yes' id='87538745'/>
@@ -64316,18 +64485,18 @@
         <parameter type-id='eaa32e2f'/>
         <return type-id='95e97e5e'/>
       </function-type>
-      <class-decl name='bpf_line_info' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='6174' column='1' id='88565f1f'>
+      <class-decl name='bpf_line_info' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='6186' column='1' id='88565f1f'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='insn_off' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='6175' column='1'/>
+          <var-decl name='insn_off' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='6187' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='32'>
-          <var-decl name='file_name_off' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='6176' column='1'/>
+          <var-decl name='file_name_off' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='6188' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='64'>
-          <var-decl name='line_off' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='6177' column='1'/>
+          <var-decl name='line_off' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='6189' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='96'>
-          <var-decl name='line_col' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='6178' column='1'/>
+          <var-decl name='line_col' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='6190' column='1'/>
         </data-member>
       </class-decl>
       <function-type size-in-bits='64' id='8858d1a7'>
@@ -64621,18 +64790,18 @@
       <pointer-type-def type-id='dfe1421c' size-in-bits='64' id='890a78ae'/>
       <pointer-type-def type-id='8ffe5745' size-in-bits='64' id='890caaa5'/>
       <pointer-type-def type-id='2376c3ec' size-in-bits='64' id='8912440a'/>
-      <class-decl name='bpf_link_info' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='5609' column='1' id='891a6859'>
+      <class-decl name='bpf_link_info' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='5621' column='1' id='891a6859'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='type' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='5610' column='1'/>
+          <var-decl name='type' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='5622' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='32'>
-          <var-decl name='id' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='5611' column='1'/>
+          <var-decl name='id' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='5623' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='64'>
-          <var-decl name='prog_id' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='5612' column='1'/>
+          <var-decl name='prog_id' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='5624' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='128'>
-          <var-decl name='' type-id='ac5ab695' visibility='default' filepath='include/uapi/linux/bpf.h' line='5613' column='1'/>
+          <var-decl name='' type-id='ac5ab695' visibility='default' filepath='include/uapi/linux/bpf.h' line='5625' column='1'/>
         </data-member>
       </class-decl>
       <function-type size-in-bits='64' id='891c6957'>
@@ -64667,15 +64836,15 @@
       <array-type-def dimensions='1' type-id='9b45d938' size-in-bits='136' id='8945ea40'>
         <subrange length='17' type-id='7ff19f0f' id='888ad0ed'/>
       </array-type-def>
-      <class-decl name='cfg80211_sar_capa' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='2097' column='1' id='894e3904'>
+      <class-decl name='cfg80211_sar_capa' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='2129' column='1' id='894e3904'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='type' type-id='8b4863ac' visibility='default' filepath='include/net/cfg80211.h' line='2098' column='1'/>
+          <var-decl name='type' type-id='8b4863ac' visibility='default' filepath='include/net/cfg80211.h' line='2130' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='32'>
-          <var-decl name='num_freq_ranges' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='2099' column='1'/>
+          <var-decl name='num_freq_ranges' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='2131' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='64'>
-          <var-decl name='freq_ranges' type-id='be875ce1' visibility='default' filepath='include/net/cfg80211.h' line='2100' column='1'/>
+          <var-decl name='freq_ranges' type-id='be875ce1' visibility='default' filepath='include/net/cfg80211.h' line='2132' column='1'/>
         </data-member>
       </class-decl>
       <enum-decl name='iio_shared_by' filepath='include/linux/iio/iio.h' line='20' column='1' id='89575fbb'>
@@ -64974,12 +65143,12 @@
         <return type-id='95e97e5e'/>
       </function-type>
       <pointer-type-def type-id='149c6638' size-in-bits='64' id='8a121f49'/>
-      <class-decl name='bpf_func_info' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='6166' column='1' id='8a1373a3'>
+      <class-decl name='bpf_func_info' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='6178' column='1' id='8a1373a3'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='insn_off' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='6167' column='1'/>
+          <var-decl name='insn_off' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='6179' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='32'>
-          <var-decl name='type_id' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='6168' column='1'/>
+          <var-decl name='type_id' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='6180' column='1'/>
         </data-member>
       </class-decl>
       <class-decl name='snd_device_ops' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/sound/core.h' line='62' column='1' id='8a1bdab0'>
@@ -65524,7 +65693,7 @@
         <return type-id='b50a4934'/>
       </function-type>
       <pointer-type-def type-id='31e0f35d' size-in-bits='64' id='8b42c33d'/>
-      <enum-decl name='nl80211_sar_type' filepath='include/uapi/linux/nl80211.h' line='7636' column='1' id='8b4863ac'>
+      <enum-decl name='nl80211_sar_type' filepath='include/uapi/linux/nl80211.h' line='7667' column='1' id='8b4863ac'>
         <underlying-type type-id='9cac1fee'/>
         <enumerator name='NL80211_SAR_TYPE_POWER' value='0'/>
         <enumerator name='NUM_NL80211_SAR_TYPE' value='1'/>
@@ -65537,24 +65706,24 @@
         <enumerator name='V4L2_PRIORITY_RECORD' value='3'/>
         <enumerator name='V4L2_PRIORITY_DEFAULT' value='2'/>
       </enum-decl>
-      <class-decl name='sched_group' size-in-bits='256' is-struct='yes' visibility='default' filepath='kernel/sched/sched.h' line='1857' column='1' id='8b6491f4'>
+      <class-decl name='sched_group' size-in-bits='256' is-struct='yes' visibility='default' filepath='kernel/sched/sched.h' line='1856' column='1' id='8b6491f4'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='next' type-id='f3dcd492' visibility='default' filepath='kernel/sched/sched.h' line='1858' column='1'/>
+          <var-decl name='next' type-id='f3dcd492' visibility='default' filepath='kernel/sched/sched.h' line='1857' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='64'>
-          <var-decl name='ref' type-id='49178f86' visibility='default' filepath='kernel/sched/sched.h' line='1859' column='1'/>
+          <var-decl name='ref' type-id='49178f86' visibility='default' filepath='kernel/sched/sched.h' line='1858' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='96'>
-          <var-decl name='group_weight' type-id='f0981eeb' visibility='default' filepath='kernel/sched/sched.h' line='1861' column='1'/>
+          <var-decl name='group_weight' type-id='f0981eeb' visibility='default' filepath='kernel/sched/sched.h' line='1860' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='128'>
-          <var-decl name='sgc' type-id='29a48d3d' visibility='default' filepath='kernel/sched/sched.h' line='1862' column='1'/>
+          <var-decl name='sgc' type-id='29a48d3d' visibility='default' filepath='kernel/sched/sched.h' line='1861' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='192'>
-          <var-decl name='asym_prefer_cpu' type-id='95e97e5e' visibility='default' filepath='kernel/sched/sched.h' line='1863' column='1'/>
+          <var-decl name='asym_prefer_cpu' type-id='95e97e5e' visibility='default' filepath='kernel/sched/sched.h' line='1862' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='256'>
-          <var-decl name='cpumask' type-id='c99b5ecd' visibility='default' filepath='kernel/sched/sched.h' line='1872' column='1'/>
+          <var-decl name='cpumask' type-id='c99b5ecd' visibility='default' filepath='kernel/sched/sched.h' line='1871' column='1'/>
         </data-member>
       </class-decl>
       <function-type size-in-bits='64' id='8b66a21e'>
@@ -67017,63 +67186,63 @@
           <var-decl name='user' type-id='70734f24' visibility='default' filepath='include/uapi/linux/xfrm.h' line='61' column='1'/>
         </data-member>
       </class-decl>
-      <union-decl name='bpf_attr' size-in-bits='1024' visibility='default' filepath='include/uapi/linux/bpf.h' line='1255' column='1' id='8eb8eec2'>
+      <union-decl name='bpf_attr' size-in-bits='1024' visibility='default' filepath='include/uapi/linux/bpf.h' line='1267' column='1' id='8eb8eec2'>
         <data-member access='public'>
-          <var-decl name='' type-id='e7f4402b' visibility='default' filepath='include/uapi/linux/bpf.h' line='1256' column='1'/>
+          <var-decl name='' type-id='e7f4402b' visibility='default' filepath='include/uapi/linux/bpf.h' line='1268' column='1'/>
         </data-member>
         <data-member access='public'>
-          <var-decl name='' type-id='e7f4402c' visibility='default' filepath='include/uapi/linux/bpf.h' line='1279' column='1'/>
+          <var-decl name='' type-id='e7f4402c' visibility='default' filepath='include/uapi/linux/bpf.h' line='1291' column='1'/>
         </data-member>
         <data-member access='public'>
-          <var-decl name='batch' type-id='e7f4402d' visibility='default' filepath='include/uapi/linux/bpf.h' line='1304' column='1'/>
+          <var-decl name='batch' type-id='e7f4402d' visibility='default' filepath='include/uapi/linux/bpf.h' line='1316' column='1'/>
         </data-member>
         <data-member access='public'>
-          <var-decl name='' type-id='e7f4402e' visibility='default' filepath='include/uapi/linux/bpf.h' line='1306' column='1'/>
+          <var-decl name='' type-id='e7f4402e' visibility='default' filepath='include/uapi/linux/bpf.h' line='1318' column='1'/>
         </data-member>
         <data-member access='public'>
-          <var-decl name='' type-id='e7f4402f' visibility='default' filepath='include/uapi/linux/bpf.h' line='1341' column='1'/>
+          <var-decl name='' type-id='e7f4402f' visibility='default' filepath='include/uapi/linux/bpf.h' line='1353' column='1'/>
         </data-member>
         <data-member access='public'>
-          <var-decl name='' type-id='e7f44030' visibility='default' filepath='include/uapi/linux/bpf.h' line='1347' column='1'/>
+          <var-decl name='' type-id='e7f44030' visibility='default' filepath='include/uapi/linux/bpf.h' line='1359' column='1'/>
         </data-member>
         <data-member access='public'>
-          <var-decl name='test' type-id='e7f44031' visibility='default' filepath='include/uapi/linux/bpf.h' line='1379' column='1'/>
+          <var-decl name='test' type-id='e7f44031' visibility='default' filepath='include/uapi/linux/bpf.h' line='1391' column='1'/>
         </data-member>
         <data-member access='public'>
-          <var-decl name='' type-id='e7f44032' visibility='default' filepath='include/uapi/linux/bpf.h' line='1381' column='1'/>
+          <var-decl name='' type-id='e7f44032' visibility='default' filepath='include/uapi/linux/bpf.h' line='1393' column='1'/>
         </data-member>
         <data-member access='public'>
-          <var-decl name='info' type-id='e7f44033' visibility='default' filepath='include/uapi/linux/bpf.h' line='1397' column='1'/>
+          <var-decl name='info' type-id='e7f44033' visibility='default' filepath='include/uapi/linux/bpf.h' line='1409' column='1'/>
         </data-member>
         <data-member access='public'>
-          <var-decl name='query' type-id='e7f44034' visibility='default' filepath='include/uapi/linux/bpf.h' line='1406' column='1'/>
+          <var-decl name='query' type-id='e7f44034' visibility='default' filepath='include/uapi/linux/bpf.h' line='1418' column='1'/>
         </data-member>
         <data-member access='public'>
-          <var-decl name='raw_tracepoint' type-id='e7f44035' visibility='default' filepath='include/uapi/linux/bpf.h' line='1411' column='1'/>
+          <var-decl name='raw_tracepoint' type-id='e7f44035' visibility='default' filepath='include/uapi/linux/bpf.h' line='1423' column='1'/>
         </data-member>
         <data-member access='public'>
-          <var-decl name='' type-id='e7f44036' visibility='default' filepath='include/uapi/linux/bpf.h' line='1413' column='1'/>
+          <var-decl name='' type-id='e7f44036' visibility='default' filepath='include/uapi/linux/bpf.h' line='1425' column='1'/>
         </data-member>
         <data-member access='public'>
-          <var-decl name='task_fd_query' type-id='e7f44037' visibility='default' filepath='include/uapi/linux/bpf.h' line='1435' column='1'/>
+          <var-decl name='task_fd_query' type-id='e7f44037' visibility='default' filepath='include/uapi/linux/bpf.h' line='1447' column='1'/>
         </data-member>
         <data-member access='public'>
-          <var-decl name='link_create' type-id='e7f44038' visibility='default' filepath='include/uapi/linux/bpf.h' line='1459' column='1'/>
+          <var-decl name='link_create' type-id='e7f44038' visibility='default' filepath='include/uapi/linux/bpf.h' line='1471' column='1'/>
         </data-member>
         <data-member access='public'>
-          <var-decl name='link_update' type-id='e7f44039' visibility='default' filepath='include/uapi/linux/bpf.h' line='1469' column='1'/>
+          <var-decl name='link_update' type-id='e7f44039' visibility='default' filepath='include/uapi/linux/bpf.h' line='1481' column='1'/>
         </data-member>
         <data-member access='public'>
-          <var-decl name='link_detach' type-id='e7f4403a' visibility='default' filepath='include/uapi/linux/bpf.h' line='1473' column='1'/>
+          <var-decl name='link_detach' type-id='e7f4403a' visibility='default' filepath='include/uapi/linux/bpf.h' line='1485' column='1'/>
         </data-member>
         <data-member access='public'>
-          <var-decl name='enable_stats' type-id='e7f4403b' visibility='default' filepath='include/uapi/linux/bpf.h' line='1477' column='1'/>
+          <var-decl name='enable_stats' type-id='e7f4403b' visibility='default' filepath='include/uapi/linux/bpf.h' line='1489' column='1'/>
         </data-member>
         <data-member access='public'>
-          <var-decl name='iter_create' type-id='e7f4403c' visibility='default' filepath='include/uapi/linux/bpf.h' line='1482' column='1'/>
+          <var-decl name='iter_create' type-id='e7f4403c' visibility='default' filepath='include/uapi/linux/bpf.h' line='1494' column='1'/>
         </data-member>
         <data-member access='public'>
-          <var-decl name='prog_bind_map' type-id='e7f4403d' visibility='default' filepath='include/uapi/linux/bpf.h' line='1488' column='1'/>
+          <var-decl name='prog_bind_map' type-id='e7f4403d' visibility='default' filepath='include/uapi/linux/bpf.h' line='1500' column='1'/>
         </data-member>
       </union-decl>
       <pointer-type-def type-id='de10cebd' size-in-bits='64' id='8eba4549'/>
@@ -68677,12 +68846,12 @@
         <return type-id='95e97e5e'/>
       </function-type>
       <pointer-type-def type-id='7dac1e36' size-in-bits='64' id='91b10e59'/>
-      <class-decl name='in6_pktinfo' size-in-bits='160' is-struct='yes' visibility='default' filepath='include/uapi/linux/ipv6.h' line='21' column='1' id='91b426fc'>
+      <class-decl name='in6_pktinfo' size-in-bits='160' is-struct='yes' visibility='default' filepath='include/uapi/linux/ipv6.h' line='22' column='1' id='91b426fc'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='ipi6_addr' type-id='f6ed712a' visibility='default' filepath='include/uapi/linux/ipv6.h' line='22' column='1'/>
+          <var-decl name='ipi6_addr' type-id='f6ed712a' visibility='default' filepath='include/uapi/linux/ipv6.h' line='23' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='128'>
-          <var-decl name='ipi6_ifindex' type-id='95e97e5e' visibility='default' filepath='include/uapi/linux/ipv6.h' line='23' column='1'/>
+          <var-decl name='ipi6_ifindex' type-id='95e97e5e' visibility='default' filepath='include/uapi/linux/ipv6.h' line='24' column='1'/>
         </data-member>
       </class-decl>
       <typedef-decl name='u64' type-id='d3130597' filepath='include/asm-generic/int-ll64.h' line='23' column='1' id='91ce1af9'/>
@@ -70191,7 +70360,7 @@
       </function-type>
       <qualified-type-def type-id='1c4048ae' const='yes' id='95be97f3'/>
       <qualified-type-def type-id='1740bab9' const='yes' id='95d0d4e8'/>
-      <enum-decl name='nl80211_bss_scan_width' filepath='include/uapi/linux/nl80211.h' line='4948' column='1' id='95d46034'>
+      <enum-decl name='nl80211_bss_scan_width' filepath='include/uapi/linux/nl80211.h' line='4973' column='1' id='95d46034'>
         <underlying-type type-id='9cac1fee'/>
         <enumerator name='NL80211_BSS_CHAN_WIDTH_20' value='0'/>
         <enumerator name='NL80211_BSS_CHAN_WIDTH_10' value='1'/>
@@ -71640,7 +71809,7 @@
         <parameter type-id='b50a4934'/>
         <return type-id='48b5725f'/>
       </function-type>
-      <enum-decl name='nl80211_dfs_state' filepath='include/uapi/linux/nl80211.h' line='6642' column='1' id='996e1634'>
+      <enum-decl name='nl80211_dfs_state' filepath='include/uapi/linux/nl80211.h' line='6673' column='1' id='996e1634'>
         <underlying-type type-id='9cac1fee'/>
         <enumerator name='NL80211_DFS_USABLE' value='0'/>
         <enumerator name='NL80211_DFS_UNAVAILABLE' value='1'/>
@@ -74004,33 +74173,33 @@
           <var-decl name='is_kernel' type-id='b50a4934' visibility='default' filepath='include/linux/sockptr.h' line='19' column='1'/>
         </data-member>
       </class-decl>
-      <class-decl name='hid_report' size-in-bits='16896' is-struct='yes' visibility='default' filepath='include/linux/hid.h' line='485' column='1' id='9ea68709'>
+      <class-decl name='hid_report' size-in-bits='16896' is-struct='yes' visibility='default' filepath='include/linux/hid.h' line='486' column='1' id='9ea68709'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/linux/hid.h' line='486' column='1'/>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/linux/hid.h' line='487' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='128'>
-          <var-decl name='hidinput_list' type-id='72f469ec' visibility='default' filepath='include/linux/hid.h' line='487' column='1'/>
+          <var-decl name='hidinput_list' type-id='72f469ec' visibility='default' filepath='include/linux/hid.h' line='488' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='256'>
-          <var-decl name='id' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='488' column='1'/>
+          <var-decl name='id' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='489' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='288'>
-          <var-decl name='type' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='489' column='1'/>
+          <var-decl name='type' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='490' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='320'>
-          <var-decl name='application' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='490' column='1'/>
+          <var-decl name='application' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='491' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='384'>
-          <var-decl name='field' type-id='b5f2d796' visibility='default' filepath='include/linux/hid.h' line='491' column='1'/>
+          <var-decl name='field' type-id='b5f2d796' visibility='default' filepath='include/linux/hid.h' line='492' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='16768'>
-          <var-decl name='maxfield' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='492' column='1'/>
+          <var-decl name='maxfield' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='493' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='16800'>
-          <var-decl name='size' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='493' column='1'/>
+          <var-decl name='size' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='494' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='16832'>
-          <var-decl name='device' type-id='37175e4d' visibility='default' filepath='include/linux/hid.h' line='494' column='1'/>
+          <var-decl name='device' type-id='37175e4d' visibility='default' filepath='include/linux/hid.h' line='495' column='1'/>
         </data-member>
       </class-decl>
       <function-type size-in-bits='64' id='9ea75344'>
@@ -79501,6 +79670,12 @@
         <parameter type-id='89a8217c'/>
         <return type-id='95e97e5e'/>
       </function-type>
+      <function-type size-in-bits='64' id='ab474fe7'>
+        <parameter type-id='f8dc9def'/>
+        <parameter type-id='3213e875'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='91ce1af9'/>
+      </function-type>
       <class-decl name='ufs_clk_scaling' size-in-bits='1792' is-struct='yes' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='441' column='1' id='ab4dad02'>
         <data-member access='public' layout-offset-in-bits='0'>
           <var-decl name='active_reqs' type-id='95e97e5e' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='442' column='1'/>
@@ -82442,56 +82617,56 @@
           <var-decl name='smc_hash' type-id='aa8162a3' visibility='default' filepath='include/net/sock.h' line='1291' column='1'/>
         </data-member>
       </union-decl>
-      <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1282' column='1' id='ac5ab67f'>
+      <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1294' column='1' id='ac5ab67f'>
         <data-member access='public'>
-          <var-decl name='value' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1283' column='1'/>
+          <var-decl name='value' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1295' column='1'/>
         </data-member>
         <data-member access='public'>
-          <var-decl name='next_key' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1284' column='1'/>
+          <var-decl name='next_key' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1296' column='1'/>
         </data-member>
       </union-decl>
-      <union-decl name='__anonymous_union__' size-in-bits='32' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1331' column='1' id='ac5ab680'>
+      <union-decl name='__anonymous_union__' size-in-bits='32' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1343' column='1' id='ac5ab680'>
         <data-member access='public'>
-          <var-decl name='attach_prog_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1333' column='1'/>
+          <var-decl name='attach_prog_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1345' column='1'/>
         </data-member>
         <data-member access='public'>
-          <var-decl name='attach_btf_obj_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1335' column='1'/>
+          <var-decl name='attach_btf_obj_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1347' column='1'/>
         </data-member>
       </union-decl>
-      <union-decl name='__anonymous_union__' size-in-bits='32' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1382' column='1' id='ac5ab681'>
+      <union-decl name='__anonymous_union__' size-in-bits='32' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1394' column='1' id='ac5ab681'>
         <data-member access='public'>
-          <var-decl name='start_id' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1383' column='1'/>
+          <var-decl name='start_id' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1395' column='1'/>
         </data-member>
         <data-member access='public'>
-          <var-decl name='prog_id' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1384' column='1'/>
+          <var-decl name='prog_id' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1396' column='1'/>
         </data-member>
         <data-member access='public'>
-          <var-decl name='map_id' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1385' column='1'/>
+          <var-decl name='map_id' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1397' column='1'/>
         </data-member>
         <data-member access='public'>
-          <var-decl name='btf_id' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1386' column='1'/>
+          <var-decl name='btf_id' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1398' column='1'/>
         </data-member>
         <data-member access='public'>
-          <var-decl name='link_id' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1387' column='1'/>
+          <var-decl name='link_id' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1399' column='1'/>
         </data-member>
       </union-decl>
-      <union-decl name='__anonymous_union__' size-in-bits='32' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1439' column='1' id='ac5ab682'>
+      <union-decl name='__anonymous_union__' size-in-bits='32' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1451' column='1' id='ac5ab682'>
         <data-member access='public'>
-          <var-decl name='target_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1440' column='1'/>
+          <var-decl name='target_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1452' column='1'/>
         </data-member>
         <data-member access='public'>
-          <var-decl name='target_ifindex' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1441' column='1'/>
+          <var-decl name='target_ifindex' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1453' column='1'/>
         </data-member>
       </union-decl>
-      <union-decl name='__anonymous_union__' size-in-bits='128' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1445' column='1' id='ac5ab683'>
+      <union-decl name='__anonymous_union__' size-in-bits='128' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1457' column='1' id='ac5ab683'>
         <data-member access='public'>
-          <var-decl name='target_btf_id' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1446' column='1'/>
+          <var-decl name='target_btf_id' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1458' column='1'/>
         </data-member>
         <data-member access='public'>
-          <var-decl name='' type-id='e7f4403e' visibility='default' filepath='include/uapi/linux/bpf.h' line='1447' column='1'/>
+          <var-decl name='' type-id='e7f4403e' visibility='default' filepath='include/uapi/linux/bpf.h' line='1459' column='1'/>
         </data-member>
         <data-member access='public'>
-          <var-decl name='perf_event' type-id='e7f4403f' visibility='default' filepath='include/uapi/linux/bpf.h' line='1457' column='1'/>
+          <var-decl name='perf_event' type-id='e7f4403f' visibility='default' filepath='include/uapi/linux/bpf.h' line='1469' column='1'/>
         </data-member>
       </union-decl>
       <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/if.h' line='210' column='1' id='ac5ab684'>
@@ -82574,21 +82749,21 @@
           <var-decl name='type' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/btf.h' line='51' column='1'/>
         </data-member>
       </union-decl>
-      <union-decl name='__anonymous_union__' size-in-bits='1920' is-anonymous='yes' visibility='default' filepath='include/net/cfg80211.h' line='6101' column='1' id='ac5ab688'>
+      <union-decl name='__anonymous_union__' size-in-bits='1920' is-anonymous='yes' visibility='default' filepath='include/net/cfg80211.h' line='6156' column='1' id='ac5ab688'>
         <data-member access='public'>
-          <var-decl name='client' type-id='e7f44075' visibility='default' filepath='include/net/cfg80211.h' line='6106' column='1'/>
+          <var-decl name='client' type-id='e7f44075' visibility='default' filepath='include/net/cfg80211.h' line='6161' column='1'/>
         </data-member>
         <data-member access='public'>
-          <var-decl name='mesh' type-id='e7f44076' visibility='default' filepath='include/net/cfg80211.h' line='6113' column='1'/>
+          <var-decl name='mesh' type-id='e7f44076' visibility='default' filepath='include/net/cfg80211.h' line='6168' column='1'/>
         </data-member>
         <data-member access='public'>
-          <var-decl name='ap' type-id='e7f44077' visibility='default' filepath='include/net/cfg80211.h' line='6118' column='1'/>
+          <var-decl name='ap' type-id='e7f44077' visibility='default' filepath='include/net/cfg80211.h' line='6173' column='1'/>
         </data-member>
         <data-member access='public'>
-          <var-decl name='ibss' type-id='e7f44078' visibility='default' filepath='include/net/cfg80211.h' line='6125' column='1'/>
+          <var-decl name='ibss' type-id='e7f44078' visibility='default' filepath='include/net/cfg80211.h' line='6180' column='1'/>
         </data-member>
         <data-member access='public'>
-          <var-decl name='ocb' type-id='e7f44079' visibility='default' filepath='include/net/cfg80211.h' line='6128' column='1'/>
+          <var-decl name='ocb' type-id='e7f44079' visibility='default' filepath='include/net/cfg80211.h' line='6183' column='1'/>
         </data-member>
       </union-decl>
       <union-decl name='__anonymous_union__' size-in-bits='128' is-anonymous='yes' visibility='default' filepath='include/net/xfrm.h' line='157' column='1' id='ac5ab689'>
@@ -82705,29 +82880,29 @@
           <var-decl name='e_gid' type-id='094d8048' visibility='default' filepath='include/linux/posix_acl.h' line='25' column='1'/>
         </data-member>
       </union-decl>
-      <union-decl name='__anonymous_union__' size-in-bits='128' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='5613' column='1' id='ac5ab695'>
+      <union-decl name='__anonymous_union__' size-in-bits='128' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='5625' column='1' id='ac5ab695'>
         <data-member access='public'>
-          <var-decl name='raw_tracepoint' type-id='e7f44048' visibility='default' filepath='include/uapi/linux/bpf.h' line='5617' column='1'/>
+          <var-decl name='raw_tracepoint' type-id='e7f44048' visibility='default' filepath='include/uapi/linux/bpf.h' line='5629' column='1'/>
         </data-member>
         <data-member access='public'>
-          <var-decl name='tracing' type-id='e7f44049' visibility='default' filepath='include/uapi/linux/bpf.h' line='5622' column='1'/>
+          <var-decl name='tracing' type-id='e7f44049' visibility='default' filepath='include/uapi/linux/bpf.h' line='5634' column='1'/>
         </data-member>
         <data-member access='public'>
-          <var-decl name='cgroup' type-id='e7f4404a' visibility='default' filepath='include/uapi/linux/bpf.h' line='5626' column='1'/>
+          <var-decl name='cgroup' type-id='e7f4404a' visibility='default' filepath='include/uapi/linux/bpf.h' line='5638' column='1'/>
         </data-member>
         <data-member access='public'>
-          <var-decl name='iter' type-id='e7f4404b' visibility='default' filepath='include/uapi/linux/bpf.h' line='5635' column='1'/>
+          <var-decl name='iter' type-id='e7f4404b' visibility='default' filepath='include/uapi/linux/bpf.h' line='5647' column='1'/>
         </data-member>
         <data-member access='public'>
-          <var-decl name='netns' type-id='e7f4404c' visibility='default' filepath='include/uapi/linux/bpf.h' line='5639' column='1'/>
+          <var-decl name='netns' type-id='e7f4404c' visibility='default' filepath='include/uapi/linux/bpf.h' line='5651' column='1'/>
         </data-member>
         <data-member access='public'>
-          <var-decl name='xdp' type-id='e7f4404d' visibility='default' filepath='include/uapi/linux/bpf.h' line='5642' column='1'/>
+          <var-decl name='xdp' type-id='e7f4404d' visibility='default' filepath='include/uapi/linux/bpf.h' line='5654' column='1'/>
         </data-member>
       </union-decl>
-      <union-decl name='__anonymous_union__' size-in-bits='32' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='5630' column='1' id='ac5ab696'>
+      <union-decl name='__anonymous_union__' size-in-bits='32' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='5642' column='1' id='ac5ab696'>
         <data-member access='public'>
-          <var-decl name='map' type-id='e7f4404e' visibility='default' filepath='include/uapi/linux/bpf.h' line='5633' column='1'/>
+          <var-decl name='map' type-id='e7f4404e' visibility='default' filepath='include/uapi/linux/bpf.h' line='5645' column='1'/>
         </data-member>
       </union-decl>
       <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/linux/igmp.h' line='74' column='1' id='ac5ab697'>
@@ -82900,23 +83075,23 @@
           <var-decl name='bw' type-id='e7f44070' visibility='default' filepath='include/net/cfg80211.h' line='390' column='1'/>
         </data-member>
       </union-decl>
-      <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/net/cfg80211.h' line='5726' column='1' id='ac5ab6a4'>
+      <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/net/cfg80211.h' line='5781' column='1' id='ac5ab6a4'>
         <data-member access='public'>
-          <var-decl name='backport' type-id='040fcd9e' visibility='default' filepath='include/net/cfg80211.h' line='5726' column='1'/>
+          <var-decl name='backport' type-id='040fcd9e' visibility='default' filepath='include/net/cfg80211.h' line='5781' column='1'/>
         </data-member>
         <data-member access='public'>
-          <var-decl name='' type-id='e7f44074' visibility='default' filepath='include/net/cfg80211.h' line='5726' column='1'/>
+          <var-decl name='' type-id='e7f44074' visibility='default' filepath='include/net/cfg80211.h' line='5781' column='1'/>
         </data-member>
         <data-member access='public'>
-          <var-decl name='' type-id='ac5ab606' visibility='default' filepath='include/net/cfg80211.h' line='5726' column='1'/>
+          <var-decl name='' type-id='ac5ab606' visibility='default' filepath='include/net/cfg80211.h' line='5781' column='1'/>
         </data-member>
       </union-decl>
-      <union-decl name='__anonymous_union__' size-in-bits='832' is-anonymous='yes' visibility='default' filepath='include/net/cfg80211.h' line='6133' column='1' id='ac5ab6a5'>
+      <union-decl name='__anonymous_union__' size-in-bits='832' is-anonymous='yes' visibility='default' filepath='include/net/cfg80211.h' line='6188' column='1' id='ac5ab6a5'>
         <data-member access='public'>
-          <var-decl name='ap' type-id='e7f4407a' visibility='default' filepath='include/net/cfg80211.h' line='6137' column='1'/>
+          <var-decl name='ap' type-id='e7f4407a' visibility='default' filepath='include/net/cfg80211.h' line='6192' column='1'/>
         </data-member>
         <data-member access='public'>
-          <var-decl name='client' type-id='e7f4407b' visibility='default' filepath='include/net/cfg80211.h' line='6140' column='1'/>
+          <var-decl name='client' type-id='e7f4407b' visibility='default' filepath='include/net/cfg80211.h' line='6195' column='1'/>
         </data-member>
       </union-decl>
       <union-decl name='__anonymous_union__' size-in-bits='128' is-anonymous='yes' visibility='default' filepath='include/net/xfrm.h' line='1408' column='1' id='ac5ab6a6'>
@@ -84865,7 +85040,7 @@
         <parameter type-id='f9409001'/>
         <return type-id='95e97e5e'/>
       </function-type>
-      <enum-decl name='bpf_link_type' filepath='include/uapi/linux/bpf.h' line='1002' column='1' id='b0467036'>
+      <enum-decl name='bpf_link_type' filepath='include/uapi/linux/bpf.h' line='1014' column='1' id='b0467036'>
         <underlying-type type-id='9cac1fee'/>
         <enumerator name='BPF_LINK_TYPE_UNSPEC' value='0'/>
         <enumerator name='BPF_LINK_TYPE_RAW_TRACEPOINT' value='1'/>
@@ -85544,108 +85719,108 @@
       <pointer-type-def type-id='1af55526' size-in-bits='64' id='b201adb8'/>
       <pointer-type-def type-id='0cdc58b8' size-in-bits='64' id='b20461b2'/>
       <pointer-type-def type-id='6c99ab8f' size-in-bits='64' id='b20722ab'/>
-      <class-decl name='urb' size-in-bits='1728' is-struct='yes' visibility='default' filepath='include/linux/usb.h' line='1589' column='1' id='b209b4e4'>
+      <class-decl name='urb' size-in-bits='1728' is-struct='yes' visibility='default' filepath='include/linux/usb.h' line='1592' column='1' id='b209b4e4'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='kref' type-id='400fb07b' visibility='default' filepath='include/linux/usb.h' line='1591' column='1'/>
+          <var-decl name='kref' type-id='400fb07b' visibility='default' filepath='include/linux/usb.h' line='1594' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='32'>
-          <var-decl name='unlinked' type-id='95e97e5e' visibility='default' filepath='include/linux/usb.h' line='1592' column='1'/>
+          <var-decl name='unlinked' type-id='95e97e5e' visibility='default' filepath='include/linux/usb.h' line='1595' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='64'>
-          <var-decl name='hcpriv' type-id='eaa32e2f' visibility='default' filepath='include/linux/usb.h' line='1593' column='1'/>
+          <var-decl name='hcpriv' type-id='eaa32e2f' visibility='default' filepath='include/linux/usb.h' line='1596' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='128'>
-          <var-decl name='use_count' type-id='49178f86' visibility='default' filepath='include/linux/usb.h' line='1594' column='1'/>
+          <var-decl name='use_count' type-id='49178f86' visibility='default' filepath='include/linux/usb.h' line='1597' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='160'>
-          <var-decl name='reject' type-id='49178f86' visibility='default' filepath='include/linux/usb.h' line='1595' column='1'/>
+          <var-decl name='reject' type-id='49178f86' visibility='default' filepath='include/linux/usb.h' line='1598' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='192'>
-          <var-decl name='urb_list' type-id='72f469ec' visibility='default' filepath='include/linux/usb.h' line='1598' column='1'/>
+          <var-decl name='urb_list' type-id='72f469ec' visibility='default' filepath='include/linux/usb.h' line='1601' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='320'>
-          <var-decl name='anchor_list' type-id='72f469ec' visibility='default' filepath='include/linux/usb.h' line='1600' column='1'/>
+          <var-decl name='anchor_list' type-id='72f469ec' visibility='default' filepath='include/linux/usb.h' line='1603' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='448'>
-          <var-decl name='anchor' type-id='bd300bf3' visibility='default' filepath='include/linux/usb.h' line='1601' column='1'/>
+          <var-decl name='anchor' type-id='bd300bf3' visibility='default' filepath='include/linux/usb.h' line='1604' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='512'>
-          <var-decl name='dev' type-id='25e60cb2' visibility='default' filepath='include/linux/usb.h' line='1602' column='1'/>
+          <var-decl name='dev' type-id='25e60cb2' visibility='default' filepath='include/linux/usb.h' line='1605' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='576'>
-          <var-decl name='ep' type-id='15adb516' visibility='default' filepath='include/linux/usb.h' line='1603' column='1'/>
+          <var-decl name='ep' type-id='15adb516' visibility='default' filepath='include/linux/usb.h' line='1606' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='640'>
-          <var-decl name='pipe' type-id='f0981eeb' visibility='default' filepath='include/linux/usb.h' line='1604' column='1'/>
+          <var-decl name='pipe' type-id='f0981eeb' visibility='default' filepath='include/linux/usb.h' line='1607' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='672'>
-          <var-decl name='stream_id' type-id='f0981eeb' visibility='default' filepath='include/linux/usb.h' line='1605' column='1'/>
+          <var-decl name='stream_id' type-id='f0981eeb' visibility='default' filepath='include/linux/usb.h' line='1608' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='704'>
-          <var-decl name='status' type-id='95e97e5e' visibility='default' filepath='include/linux/usb.h' line='1606' column='1'/>
+          <var-decl name='status' type-id='95e97e5e' visibility='default' filepath='include/linux/usb.h' line='1609' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='736'>
-          <var-decl name='transfer_flags' type-id='f0981eeb' visibility='default' filepath='include/linux/usb.h' line='1607' column='1'/>
+          <var-decl name='transfer_flags' type-id='f0981eeb' visibility='default' filepath='include/linux/usb.h' line='1610' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='768'>
-          <var-decl name='transfer_buffer' type-id='eaa32e2f' visibility='default' filepath='include/linux/usb.h' line='1608' column='1'/>
+          <var-decl name='transfer_buffer' type-id='eaa32e2f' visibility='default' filepath='include/linux/usb.h' line='1611' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='832'>
-          <var-decl name='transfer_dma' type-id='cf29c9b3' visibility='default' filepath='include/linux/usb.h' line='1609' column='1'/>
+          <var-decl name='transfer_dma' type-id='cf29c9b3' visibility='default' filepath='include/linux/usb.h' line='1612' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='896'>
-          <var-decl name='sg' type-id='bf3ef905' visibility='default' filepath='include/linux/usb.h' line='1610' column='1'/>
+          <var-decl name='sg' type-id='bf3ef905' visibility='default' filepath='include/linux/usb.h' line='1613' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='960'>
-          <var-decl name='num_mapped_sgs' type-id='95e97e5e' visibility='default' filepath='include/linux/usb.h' line='1611' column='1'/>
+          <var-decl name='num_mapped_sgs' type-id='95e97e5e' visibility='default' filepath='include/linux/usb.h' line='1614' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='992'>
-          <var-decl name='num_sgs' type-id='95e97e5e' visibility='default' filepath='include/linux/usb.h' line='1612' column='1'/>
+          <var-decl name='num_sgs' type-id='95e97e5e' visibility='default' filepath='include/linux/usb.h' line='1615' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1024'>
-          <var-decl name='transfer_buffer_length' type-id='19c2251e' visibility='default' filepath='include/linux/usb.h' line='1613' column='1'/>
+          <var-decl name='transfer_buffer_length' type-id='19c2251e' visibility='default' filepath='include/linux/usb.h' line='1616' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1056'>
-          <var-decl name='actual_length' type-id='19c2251e' visibility='default' filepath='include/linux/usb.h' line='1614' column='1'/>
+          <var-decl name='actual_length' type-id='19c2251e' visibility='default' filepath='include/linux/usb.h' line='1617' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1088'>
-          <var-decl name='setup_packet' type-id='cf536864' visibility='default' filepath='include/linux/usb.h' line='1615' column='1'/>
+          <var-decl name='setup_packet' type-id='cf536864' visibility='default' filepath='include/linux/usb.h' line='1618' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1152'>
-          <var-decl name='setup_dma' type-id='cf29c9b3' visibility='default' filepath='include/linux/usb.h' line='1616' column='1'/>
+          <var-decl name='setup_dma' type-id='cf29c9b3' visibility='default' filepath='include/linux/usb.h' line='1619' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1216'>
-          <var-decl name='start_frame' type-id='95e97e5e' visibility='default' filepath='include/linux/usb.h' line='1617' column='1'/>
+          <var-decl name='start_frame' type-id='95e97e5e' visibility='default' filepath='include/linux/usb.h' line='1620' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1248'>
-          <var-decl name='number_of_packets' type-id='95e97e5e' visibility='default' filepath='include/linux/usb.h' line='1618' column='1'/>
+          <var-decl name='number_of_packets' type-id='95e97e5e' visibility='default' filepath='include/linux/usb.h' line='1621' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1280'>
-          <var-decl name='interval' type-id='95e97e5e' visibility='default' filepath='include/linux/usb.h' line='1619' column='1'/>
+          <var-decl name='interval' type-id='95e97e5e' visibility='default' filepath='include/linux/usb.h' line='1622' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1312'>
-          <var-decl name='error_count' type-id='95e97e5e' visibility='default' filepath='include/linux/usb.h' line='1621' column='1'/>
+          <var-decl name='error_count' type-id='95e97e5e' visibility='default' filepath='include/linux/usb.h' line='1624' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1344'>
-          <var-decl name='context' type-id='eaa32e2f' visibility='default' filepath='include/linux/usb.h' line='1622' column='1'/>
+          <var-decl name='context' type-id='eaa32e2f' visibility='default' filepath='include/linux/usb.h' line='1625' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1408'>
-          <var-decl name='complete' type-id='4086973b' visibility='default' filepath='include/linux/usb.h' line='1623' column='1'/>
+          <var-decl name='complete' type-id='4086973b' visibility='default' filepath='include/linux/usb.h' line='1626' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1472'>
-          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/usb.h' line='1625' column='1'/>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/usb.h' line='1628' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1536'>
-          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/usb.h' line='1626' column='1'/>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/usb.h' line='1629' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1600'>
-          <var-decl name='android_kabi_reserved3' type-id='91ce1af9' visibility='default' filepath='include/linux/usb.h' line='1627' column='1'/>
+          <var-decl name='android_kabi_reserved3' type-id='91ce1af9' visibility='default' filepath='include/linux/usb.h' line='1630' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1664'>
-          <var-decl name='android_kabi_reserved4' type-id='91ce1af9' visibility='default' filepath='include/linux/usb.h' line='1628' column='1'/>
+          <var-decl name='android_kabi_reserved4' type-id='91ce1af9' visibility='default' filepath='include/linux/usb.h' line='1631' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1728'>
-          <var-decl name='iso_frame_desc' type-id='b585dd30' visibility='default' filepath='include/linux/usb.h' line='1630' column='1'/>
+          <var-decl name='iso_frame_desc' type-id='b585dd30' visibility='default' filepath='include/linux/usb.h' line='1633' column='1'/>
         </data-member>
       </class-decl>
       <qualified-type-def type-id='c4cd9d00' const='yes' id='b20d2281'/>
@@ -85891,6 +86066,7 @@
         <parameter type-id='d504f73d'/>
         <return type-id='95e97e5e'/>
       </function-type>
+      <pointer-type-def type-id='f3a719f4' size-in-bits='64' id='b2ea0a72'/>
       <function-type size-in-bits='64' id='b2ea0ff9'>
         <parameter type-id='0fbf3cfd'/>
         <parameter type-id='3f646ae7'/>
@@ -86301,21 +86477,21 @@
         <parameter type-id='031224de'/>
         <return type-id='b50a4934'/>
       </function-type>
-      <class-decl name='usb_anchor' size-in-bits='448' is-struct='yes' visibility='default' filepath='include/linux/usb.h' line='1388' column='1' id='b3bcc053'>
+      <class-decl name='usb_anchor' size-in-bits='448' is-struct='yes' visibility='default' filepath='include/linux/usb.h' line='1391' column='1' id='b3bcc053'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='urb_list' type-id='72f469ec' visibility='default' filepath='include/linux/usb.h' line='1389' column='1'/>
+          <var-decl name='urb_list' type-id='72f469ec' visibility='default' filepath='include/linux/usb.h' line='1392' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='128'>
-          <var-decl name='wait' type-id='b5ab048f' visibility='default' filepath='include/linux/usb.h' line='1390' column='1'/>
+          <var-decl name='wait' type-id='b5ab048f' visibility='default' filepath='include/linux/usb.h' line='1393' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='320'>
-          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='include/linux/usb.h' line='1391' column='1'/>
+          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='include/linux/usb.h' line='1394' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='352'>
-          <var-decl name='suspend_wakeups' type-id='49178f86' visibility='default' filepath='include/linux/usb.h' line='1392' column='1'/>
+          <var-decl name='suspend_wakeups' type-id='49178f86' visibility='default' filepath='include/linux/usb.h' line='1395' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='384'>
-          <var-decl name='poisoned' type-id='f0981eeb' visibility='default' filepath='include/linux/usb.h' line='1393' column='1'/>
+          <var-decl name='poisoned' type-id='f0981eeb' visibility='default' filepath='include/linux/usb.h' line='1396' column='1'/>
         </data-member>
       </class-decl>
       <function-type size-in-bits='64' id='b3bf9ca3'>
@@ -88124,6 +88300,7 @@
         <enumerator name='BPF_PROG_TYPE_LSM' value='29'/>
         <enumerator name='BPF_PROG_TYPE_SK_LOOKUP' value='30'/>
         <enumerator name='BPF_PROG_TYPE_SYSCALL' value='31'/>
+        <enumerator name='BPF_PROG_TYPE_FUSE' value='32'/>
       </enum-decl>
       <class-decl name='cgroup_bpf' size-in-bits='5888' is-struct='yes' visibility='default' filepath='include/linux/bpf-cgroup.h' line='132' column='1' id='b80e3996'>
         <data-member access='public' layout-offset-in-bits='0'>
@@ -88183,7 +88360,7 @@
           <var-decl name='cgroup_ns' type-id='f774a955' visibility='default' filepath='include/linux/nsproxy.h' line='40' column='1'/>
         </data-member>
       </class-decl>
-      <enum-decl name='nl80211_user_reg_hint_type' filepath='include/uapi/linux/nl80211.h' line='4464' column='1' id='b833d4ac'>
+      <enum-decl name='nl80211_user_reg_hint_type' filepath='include/uapi/linux/nl80211.h' line='4489' column='1' id='b833d4ac'>
         <underlying-type type-id='9cac1fee'/>
         <enumerator name='NL80211_USER_REG_HINT_USER' value='0'/>
         <enumerator name='NL80211_USER_REG_HINT_CELL_BASE' value='1'/>
@@ -88239,7 +88416,7 @@
           <var-decl name='rcu' type-id='e3d8ce29' visibility='default' filepath='include/net/psample.h' line='14' column='1'/>
         </data-member>
       </class-decl>
-      <enum-decl name='cfg80211_signal_type' filepath='include/net/cfg80211.h' line='2757' column='1' id='b8524648'>
+      <enum-decl name='cfg80211_signal_type' filepath='include/net/cfg80211.h' line='2789' column='1' id='b8524648'>
         <underlying-type type-id='9cac1fee'/>
         <enumerator name='CFG80211_SIGNAL_TYPE_NONE' value='0'/>
         <enumerator name='CFG80211_SIGNAL_TYPE_MBM' value='1'/>
@@ -89098,18 +89275,18 @@
           <var-decl name='mask' type-id='69281b5f' visibility='default' filepath='include/net/flow_offload.h' line='48' column='1'/>
         </data-member>
       </class-decl>
-      <class-decl name='event_subsystem' size-in-bits='320' is-struct='yes' visibility='default' filepath='kernel/trace/trace.h' line='1293' column='1' id='ba400603'>
+      <class-decl name='event_subsystem' size-in-bits='320' is-struct='yes' visibility='default' filepath='kernel/trace/trace.h' line='1291' column='1' id='ba400603'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='kernel/trace/trace.h' line='1294' column='1'/>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='kernel/trace/trace.h' line='1292' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='128'>
-          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='kernel/trace/trace.h' line='1295' column='1'/>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='kernel/trace/trace.h' line='1293' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='192'>
-          <var-decl name='filter' type-id='26461068' visibility='default' filepath='kernel/trace/trace.h' line='1296' column='1'/>
+          <var-decl name='filter' type-id='26461068' visibility='default' filepath='kernel/trace/trace.h' line='1294' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='256'>
-          <var-decl name='ref_count' type-id='95e97e5e' visibility='default' filepath='kernel/trace/trace.h' line='1297' column='1'/>
+          <var-decl name='ref_count' type-id='95e97e5e' visibility='default' filepath='kernel/trace/trace.h' line='1295' column='1'/>
         </data-member>
       </class-decl>
       <class-decl name='net_device_ops' size-in-bits='5312' is-struct='yes' visibility='default' filepath='include/linux/netdevice.h' line='1386' column='1' id='ba44c7d8'>
@@ -89851,213 +90028,213 @@
         </data-member>
       </class-decl>
       <pointer-type-def type-id='bca91994' size-in-bits='64' id='bc33861a'/>
-      <class-decl name='super_block' size-in-bits='12800' is-struct='yes' visibility='default' filepath='include/linux/fs.h' line='1498' column='1' id='bc39a8be'>
+      <class-decl name='super_block' size-in-bits='12800' is-struct='yes' visibility='default' filepath='include/linux/fs.h' line='1504' column='1' id='bc39a8be'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='s_list' type-id='72f469ec' visibility='default' filepath='include/linux/fs.h' line='1499' column='1'/>
+          <var-decl name='s_list' type-id='72f469ec' visibility='default' filepath='include/linux/fs.h' line='1505' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='128'>
-          <var-decl name='s_dev' type-id='8504f260' visibility='default' filepath='include/linux/fs.h' line='1500' column='1'/>
+          <var-decl name='s_dev' type-id='8504f260' visibility='default' filepath='include/linux/fs.h' line='1506' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='160'>
-          <var-decl name='s_blocksize_bits' type-id='002ac4a6' visibility='default' filepath='include/linux/fs.h' line='1501' column='1'/>
+          <var-decl name='s_blocksize_bits' type-id='002ac4a6' visibility='default' filepath='include/linux/fs.h' line='1507' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='192'>
-          <var-decl name='s_blocksize' type-id='7359adad' visibility='default' filepath='include/linux/fs.h' line='1502' column='1'/>
+          <var-decl name='s_blocksize' type-id='7359adad' visibility='default' filepath='include/linux/fs.h' line='1508' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='256'>
-          <var-decl name='s_maxbytes' type-id='69bf7bee' visibility='default' filepath='include/linux/fs.h' line='1503' column='1'/>
+          <var-decl name='s_maxbytes' type-id='69bf7bee' visibility='default' filepath='include/linux/fs.h' line='1509' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='320'>
-          <var-decl name='s_type' type-id='21e53d44' visibility='default' filepath='include/linux/fs.h' line='1504' column='1'/>
+          <var-decl name='s_type' type-id='21e53d44' visibility='default' filepath='include/linux/fs.h' line='1510' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='384'>
-          <var-decl name='s_op' type-id='f7c6dcac' visibility='default' filepath='include/linux/fs.h' line='1505' column='1'/>
+          <var-decl name='s_op' type-id='f7c6dcac' visibility='default' filepath='include/linux/fs.h' line='1511' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='448'>
-          <var-decl name='dq_op' type-id='85741a2a' visibility='default' filepath='include/linux/fs.h' line='1506' column='1'/>
+          <var-decl name='dq_op' type-id='85741a2a' visibility='default' filepath='include/linux/fs.h' line='1512' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='512'>
-          <var-decl name='s_qcop' type-id='2cb49514' visibility='default' filepath='include/linux/fs.h' line='1507' column='1'/>
+          <var-decl name='s_qcop' type-id='2cb49514' visibility='default' filepath='include/linux/fs.h' line='1513' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='576'>
-          <var-decl name='s_export_op' type-id='ab932c45' visibility='default' filepath='include/linux/fs.h' line='1508' column='1'/>
+          <var-decl name='s_export_op' type-id='ab932c45' visibility='default' filepath='include/linux/fs.h' line='1514' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='640'>
-          <var-decl name='s_flags' type-id='7359adad' visibility='default' filepath='include/linux/fs.h' line='1509' column='1'/>
+          <var-decl name='s_flags' type-id='7359adad' visibility='default' filepath='include/linux/fs.h' line='1515' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='704'>
-          <var-decl name='s_iflags' type-id='7359adad' visibility='default' filepath='include/linux/fs.h' line='1510' column='1'/>
+          <var-decl name='s_iflags' type-id='7359adad' visibility='default' filepath='include/linux/fs.h' line='1516' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='768'>
-          <var-decl name='s_magic' type-id='7359adad' visibility='default' filepath='include/linux/fs.h' line='1511' column='1'/>
+          <var-decl name='s_magic' type-id='7359adad' visibility='default' filepath='include/linux/fs.h' line='1517' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='832'>
-          <var-decl name='s_root' type-id='27675065' visibility='default' filepath='include/linux/fs.h' line='1512' column='1'/>
+          <var-decl name='s_root' type-id='27675065' visibility='default' filepath='include/linux/fs.h' line='1518' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='896'>
-          <var-decl name='s_umount' type-id='f19fdb93' visibility='default' filepath='include/linux/fs.h' line='1513' column='1'/>
+          <var-decl name='s_umount' type-id='f19fdb93' visibility='default' filepath='include/linux/fs.h' line='1519' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1408'>
-          <var-decl name='s_count' type-id='95e97e5e' visibility='default' filepath='include/linux/fs.h' line='1514' column='1'/>
+          <var-decl name='s_count' type-id='95e97e5e' visibility='default' filepath='include/linux/fs.h' line='1520' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1440'>
-          <var-decl name='s_active' type-id='49178f86' visibility='default' filepath='include/linux/fs.h' line='1515' column='1'/>
+          <var-decl name='s_active' type-id='49178f86' visibility='default' filepath='include/linux/fs.h' line='1521' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1472'>
-          <var-decl name='s_security' type-id='eaa32e2f' visibility='default' filepath='include/linux/fs.h' line='1517' column='1'/>
+          <var-decl name='s_security' type-id='eaa32e2f' visibility='default' filepath='include/linux/fs.h' line='1523' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1536'>
-          <var-decl name='s_xattr' type-id='cb49d4b8' visibility='default' filepath='include/linux/fs.h' line='1519' column='1'/>
+          <var-decl name='s_xattr' type-id='cb49d4b8' visibility='default' filepath='include/linux/fs.h' line='1525' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1600'>
-          <var-decl name='s_cop' type-id='8d31a8d6' visibility='default' filepath='include/linux/fs.h' line='1521' column='1'/>
+          <var-decl name='s_cop' type-id='8d31a8d6' visibility='default' filepath='include/linux/fs.h' line='1527' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1664'>
-          <var-decl name='s_master_keys' type-id='c14b7eb6' visibility='default' filepath='include/linux/fs.h' line='1530' column='1'/>
+          <var-decl name='s_master_keys' type-id='c14b7eb6' visibility='default' filepath='include/linux/fs.h' line='1536' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1728'>
-          <var-decl name='s_vop' type-id='e3008443' visibility='default' filepath='include/linux/fs.h' line='1534' column='1'/>
+          <var-decl name='s_vop' type-id='e3008443' visibility='default' filepath='include/linux/fs.h' line='1540' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1792'>
-          <var-decl name='s_encoding' type-id='72835629' visibility='default' filepath='include/linux/fs.h' line='1537' column='1'/>
+          <var-decl name='s_encoding' type-id='72835629' visibility='default' filepath='include/linux/fs.h' line='1543' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1856'>
-          <var-decl name='s_encoding_flags' type-id='d315442e' visibility='default' filepath='include/linux/fs.h' line='1538' column='1'/>
+          <var-decl name='s_encoding_flags' type-id='d315442e' visibility='default' filepath='include/linux/fs.h' line='1544' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1920'>
-          <var-decl name='s_roots' type-id='def98e71' visibility='default' filepath='include/linux/fs.h' line='1540' column='1'/>
+          <var-decl name='s_roots' type-id='def98e71' visibility='default' filepath='include/linux/fs.h' line='1546' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1984'>
-          <var-decl name='s_mounts' type-id='72f469ec' visibility='default' filepath='include/linux/fs.h' line='1541' column='1'/>
+          <var-decl name='s_mounts' type-id='72f469ec' visibility='default' filepath='include/linux/fs.h' line='1547' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='2112'>
-          <var-decl name='s_bdev' type-id='b88dd945' visibility='default' filepath='include/linux/fs.h' line='1542' column='1'/>
+          <var-decl name='s_bdev' type-id='b88dd945' visibility='default' filepath='include/linux/fs.h' line='1548' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='2176'>
-          <var-decl name='s_bdi' type-id='ef4fae1b' visibility='default' filepath='include/linux/fs.h' line='1543' column='1'/>
+          <var-decl name='s_bdi' type-id='ef4fae1b' visibility='default' filepath='include/linux/fs.h' line='1549' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='2240'>
-          <var-decl name='s_mtd' type-id='58ed56f5' visibility='default' filepath='include/linux/fs.h' line='1544' column='1'/>
+          <var-decl name='s_mtd' type-id='58ed56f5' visibility='default' filepath='include/linux/fs.h' line='1550' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='2304'>
-          <var-decl name='s_instances' type-id='03a4a074' visibility='default' filepath='include/linux/fs.h' line='1545' column='1'/>
+          <var-decl name='s_instances' type-id='03a4a074' visibility='default' filepath='include/linux/fs.h' line='1551' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='2432'>
-          <var-decl name='s_quota_types' type-id='f0981eeb' visibility='default' filepath='include/linux/fs.h' line='1546' column='1'/>
+          <var-decl name='s_quota_types' type-id='f0981eeb' visibility='default' filepath='include/linux/fs.h' line='1552' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='2496'>
-          <var-decl name='s_dquot' type-id='c26e4ad8' visibility='default' filepath='include/linux/fs.h' line='1547' column='1'/>
+          <var-decl name='s_dquot' type-id='c26e4ad8' visibility='default' filepath='include/linux/fs.h' line='1553' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='5184'>
-          <var-decl name='s_writers' type-id='fb476a2b' visibility='default' filepath='include/linux/fs.h' line='1549' column='1'/>
+          <var-decl name='s_writers' type-id='fb476a2b' visibility='default' filepath='include/linux/fs.h' line='1555' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='7744'>
-          <var-decl name='s_fs_info' type-id='eaa32e2f' visibility='default' filepath='include/linux/fs.h' line='1556' column='1'/>
+          <var-decl name='s_fs_info' type-id='eaa32e2f' visibility='default' filepath='include/linux/fs.h' line='1562' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='7808'>
-          <var-decl name='s_time_gran' type-id='19c2251e' visibility='default' filepath='include/linux/fs.h' line='1559' column='1'/>
+          <var-decl name='s_time_gran' type-id='19c2251e' visibility='default' filepath='include/linux/fs.h' line='1565' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='7872'>
-          <var-decl name='s_time_min' type-id='1afd27ac' visibility='default' filepath='include/linux/fs.h' line='1561' column='1'/>
+          <var-decl name='s_time_min' type-id='1afd27ac' visibility='default' filepath='include/linux/fs.h' line='1567' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='7936'>
-          <var-decl name='s_time_max' type-id='1afd27ac' visibility='default' filepath='include/linux/fs.h' line='1562' column='1'/>
+          <var-decl name='s_time_max' type-id='1afd27ac' visibility='default' filepath='include/linux/fs.h' line='1568' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='8000'>
-          <var-decl name='s_fsnotify_mask' type-id='3f1a6b60' visibility='default' filepath='include/linux/fs.h' line='1564' column='1'/>
+          <var-decl name='s_fsnotify_mask' type-id='3f1a6b60' visibility='default' filepath='include/linux/fs.h' line='1570' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='8064'>
-          <var-decl name='s_fsnotify_marks' type-id='994d9d61' visibility='default' filepath='include/linux/fs.h' line='1565' column='1'/>
+          <var-decl name='s_fsnotify_marks' type-id='994d9d61' visibility='default' filepath='include/linux/fs.h' line='1571' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='8128'>
-          <var-decl name='s_id' type-id='16dc656a' visibility='default' filepath='include/linux/fs.h' line='1568' column='1'/>
+          <var-decl name='s_id' type-id='16dc656a' visibility='default' filepath='include/linux/fs.h' line='1574' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='8384'>
-          <var-decl name='s_uuid' type-id='ec55eb74' visibility='default' filepath='include/linux/fs.h' line='1569' column='1'/>
+          <var-decl name='s_uuid' type-id='ec55eb74' visibility='default' filepath='include/linux/fs.h' line='1575' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='8512'>
-          <var-decl name='s_max_links' type-id='f0981eeb' visibility='default' filepath='include/linux/fs.h' line='1571' column='1'/>
+          <var-decl name='s_max_links' type-id='f0981eeb' visibility='default' filepath='include/linux/fs.h' line='1577' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='8544'>
-          <var-decl name='s_mode' type-id='2665334e' visibility='default' filepath='include/linux/fs.h' line='1572' column='1'/>
+          <var-decl name='s_mode' type-id='2665334e' visibility='default' filepath='include/linux/fs.h' line='1578' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='8576'>
-          <var-decl name='s_vfs_rename_mutex' type-id='925167dc' visibility='default' filepath='include/linux/fs.h' line='1578' column='1'/>
+          <var-decl name='s_vfs_rename_mutex' type-id='925167dc' visibility='default' filepath='include/linux/fs.h' line='1584' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='8960'>
-          <var-decl name='s_subtype' type-id='80f4b756' visibility='default' filepath='include/linux/fs.h' line='1584' column='1'/>
+          <var-decl name='s_subtype' type-id='80f4b756' visibility='default' filepath='include/linux/fs.h' line='1590' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='9024'>
-          <var-decl name='s_d_op' type-id='1ee57353' visibility='default' filepath='include/linux/fs.h' line='1586' column='1'/>
+          <var-decl name='s_d_op' type-id='1ee57353' visibility='default' filepath='include/linux/fs.h' line='1592' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='9088'>
-          <var-decl name='cleancache_poolid' type-id='95e97e5e' visibility='default' filepath='include/linux/fs.h' line='1591' column='1'/>
+          <var-decl name='cleancache_poolid' type-id='95e97e5e' visibility='default' filepath='include/linux/fs.h' line='1597' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='9152'>
-          <var-decl name='s_shrink' type-id='27cb404f' visibility='default' filepath='include/linux/fs.h' line='1593' column='1'/>
+          <var-decl name='s_shrink' type-id='27cb404f' visibility='default' filepath='include/linux/fs.h' line='1599' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='9664'>
-          <var-decl name='s_remove_count' type-id='f22a8abb' visibility='default' filepath='include/linux/fs.h' line='1596' column='1'/>
+          <var-decl name='s_remove_count' type-id='f22a8abb' visibility='default' filepath='include/linux/fs.h' line='1602' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='9728'>
-          <var-decl name='s_fsnotify_connectors' type-id='f22a8abb' visibility='default' filepath='include/linux/fs.h' line='1602' column='1'/>
+          <var-decl name='s_fsnotify_connectors' type-id='f22a8abb' visibility='default' filepath='include/linux/fs.h' line='1608' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='9792'>
-          <var-decl name='s_readonly_remount' type-id='95e97e5e' visibility='default' filepath='include/linux/fs.h' line='1605' column='1'/>
+          <var-decl name='s_readonly_remount' type-id='95e97e5e' visibility='default' filepath='include/linux/fs.h' line='1611' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='9824'>
-          <var-decl name='s_wb_err' type-id='1da55f79' visibility='default' filepath='include/linux/fs.h' line='1608' column='1'/>
+          <var-decl name='s_wb_err' type-id='1da55f79' visibility='default' filepath='include/linux/fs.h' line='1614' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='9856'>
-          <var-decl name='s_dio_done_wq' type-id='242e3d19' visibility='default' filepath='include/linux/fs.h' line='1611' column='1'/>
+          <var-decl name='s_dio_done_wq' type-id='242e3d19' visibility='default' filepath='include/linux/fs.h' line='1617' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='9920'>
-          <var-decl name='s_pins' type-id='e151255a' visibility='default' filepath='include/linux/fs.h' line='1612' column='1'/>
+          <var-decl name='s_pins' type-id='e151255a' visibility='default' filepath='include/linux/fs.h' line='1618' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='9984'>
-          <var-decl name='s_user_ns' type-id='c0ced320' visibility='default' filepath='include/linux/fs.h' line='1619' column='1'/>
+          <var-decl name='s_user_ns' type-id='c0ced320' visibility='default' filepath='include/linux/fs.h' line='1625' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='10048'>
-          <var-decl name='s_dentry_lru' type-id='c653aac7' visibility='default' filepath='include/linux/fs.h' line='1626' column='1'/>
+          <var-decl name='s_dentry_lru' type-id='c653aac7' visibility='default' filepath='include/linux/fs.h' line='1632' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='10304'>
-          <var-decl name='s_inode_lru' type-id='c653aac7' visibility='default' filepath='include/linux/fs.h' line='1627' column='1'/>
+          <var-decl name='s_inode_lru' type-id='c653aac7' visibility='default' filepath='include/linux/fs.h' line='1633' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='10560'>
-          <var-decl name='rcu' type-id='e3d8ce29' visibility='default' filepath='include/linux/fs.h' line='1628' column='1'/>
+          <var-decl name='rcu' type-id='e3d8ce29' visibility='default' filepath='include/linux/fs.h' line='1634' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='10688'>
-          <var-decl name='destroy_work' type-id='ef9025d0' visibility='default' filepath='include/linux/fs.h' line='1629' column='1'/>
+          <var-decl name='destroy_work' type-id='ef9025d0' visibility='default' filepath='include/linux/fs.h' line='1635' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='11072'>
-          <var-decl name='s_sync_lock' type-id='925167dc' visibility='default' filepath='include/linux/fs.h' line='1631' column='1'/>
+          <var-decl name='s_sync_lock' type-id='925167dc' visibility='default' filepath='include/linux/fs.h' line='1637' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='11456'>
-          <var-decl name='s_stack_depth' type-id='95e97e5e' visibility='default' filepath='include/linux/fs.h' line='1636' column='1'/>
+          <var-decl name='s_stack_depth' type-id='95e97e5e' visibility='default' filepath='include/linux/fs.h' line='1642' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='11776'>
-          <var-decl name='s_inode_list_lock' type-id='fb4018a0' visibility='default' filepath='include/linux/fs.h' line='1639' column='1'/>
+          <var-decl name='s_inode_list_lock' type-id='fb4018a0' visibility='default' filepath='include/linux/fs.h' line='1645' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='11840'>
-          <var-decl name='s_inodes' type-id='72f469ec' visibility='default' filepath='include/linux/fs.h' line='1640' column='1'/>
+          <var-decl name='s_inodes' type-id='72f469ec' visibility='default' filepath='include/linux/fs.h' line='1646' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='11968'>
-          <var-decl name='s_inode_wblist_lock' type-id='fb4018a0' visibility='default' filepath='include/linux/fs.h' line='1642' column='1'/>
+          <var-decl name='s_inode_wblist_lock' type-id='fb4018a0' visibility='default' filepath='include/linux/fs.h' line='1648' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='12032'>
-          <var-decl name='s_inodes_wb' type-id='72f469ec' visibility='default' filepath='include/linux/fs.h' line='1643' column='1'/>
+          <var-decl name='s_inodes_wb' type-id='72f469ec' visibility='default' filepath='include/linux/fs.h' line='1649' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='12160'>
-          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='1645' column='1'/>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='1651' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='12224'>
-          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='1646' column='1'/>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='1652' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='12288'>
-          <var-decl name='android_kabi_reserved3' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='1647' column='1'/>
+          <var-decl name='android_kabi_reserved3' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='1653' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='12352'>
-          <var-decl name='android_kabi_reserved4' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='1648' column='1'/>
+          <var-decl name='android_kabi_reserved4' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='1654' column='1'/>
         </data-member>
       </class-decl>
       <class-decl name='__anonymous_struct__' size-in-bits='32' is-struct='yes' visibility='default' filepath='include/linux/uidgid.h' line='21' column='1' id='bc3a21bb' is-anonymous='yes'>
@@ -94273,6 +94450,7 @@
         <enumerator name='TYPEC_CC_RP_3_0' value='5'/>
       </enum-decl>
       <pointer-type-def type-id='7c1f247e' size-in-bits='64' id='c2d2a400'/>
+      <pointer-type-def type-id='ab474fe7' size-in-bits='64' id='c2d8e88b'/>
       <class-decl name='nf_conntrack_expect' size-in-bits='1856' is-struct='yes' visibility='default' filepath='include/net/netfilter/nf_conntrack_expect.h' line='18' column='1' id='c2dc4615'>
         <data-member access='public' layout-offset-in-bits='0'>
           <var-decl name='lnode' type-id='03a4a074' visibility='default' filepath='include/net/netfilter/nf_conntrack_expect.h' line='20' column='1'/>
@@ -96566,6 +96744,7 @@
           <var-decl name='bU2DevExitLat' type-id='23119536' visibility='default' filepath='include/uapi/linux/usb/ch9.h' line='930' column='1'/>
         </data-member>
       </class-decl>
+      <pointer-type-def type-id='379ef9aa' size-in-bits='64' id='c6db53f8'/>
       <pointer-type-def type-id='6ab964d2' size-in-bits='64' id='c6e1b58c'/>
       <array-type-def dimensions='1' type-id='0888126c' size-in-bits='64' id='c6e3c250'>
         <subrange length='2' type-id='7ff19f0f' id='52efc4ef'/>
@@ -96985,15 +97164,15 @@
           <var-decl name='target_kn' type-id='150efd3f' visibility='default' filepath='include/linux/kernfs.h' line='110' column='1'/>
         </data-member>
       </class-decl>
-      <class-decl name='wiphy_iftype_akm_suites' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='5348' column='1' id='c86a8a16'>
+      <class-decl name='wiphy_iftype_akm_suites' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='5403' column='1' id='c86a8a16'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='iftypes_mask' type-id='1dc6a898' visibility='default' filepath='include/net/cfg80211.h' line='5349' column='1'/>
+          <var-decl name='iftypes_mask' type-id='1dc6a898' visibility='default' filepath='include/net/cfg80211.h' line='5404' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='64'>
-          <var-decl name='akm_suites' type-id='aded214c' visibility='default' filepath='include/net/cfg80211.h' line='5350' column='1'/>
+          <var-decl name='akm_suites' type-id='aded214c' visibility='default' filepath='include/net/cfg80211.h' line='5405' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='128'>
-          <var-decl name='n_akm_suites' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='5351' column='1'/>
+          <var-decl name='n_akm_suites' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='5406' column='1'/>
         </data-member>
       </class-decl>
       <enum-decl name='hdmi_colorspace' filepath='include/linux/hdmi.h' line='71' column='1' id='c86f38e4'>
@@ -97897,12 +98076,12 @@
       <array-type-def dimensions='1' type-id='1851ab9f' size-in-bits='4096' id='cb01bf4b'>
         <subrange length='8' type-id='7ff19f0f' id='56e0c0b1'/>
       </array-type-def>
-      <class-decl name='usb_dynids' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/usb.h' line='1116' column='1' id='cb08bae1'>
+      <class-decl name='usb_dynids' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/usb.h' line='1119' column='1' id='cb08bae1'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='include/linux/usb.h' line='1117' column='1'/>
+          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='include/linux/usb.h' line='1120' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='64'>
-          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/linux/usb.h' line='1118' column='1'/>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/linux/usb.h' line='1121' column='1'/>
         </data-member>
       </class-decl>
       <pointer-type-def type-id='96658a93' size-in-bits='64' id='cb0ca137'/>
@@ -98199,6 +98378,7 @@
         <parameter type-id='e9a4c848'/>
         <return type-id='48b5725f'/>
       </function-type>
+      <pointer-type-def type-id='247d0323' size-in-bits='64' id='cbc1e303'/>
       <qualified-type-def type-id='5f78aa17' const='yes' id='cbc7b73b'/>
       <class-decl name='mbox_chan' size-in-bits='1984' is-struct='yes' visibility='default' filepath='include/linux/mailbox_controller.h' line='117' column='1' id='cbc88d4a'>
         <data-member access='public' layout-offset-in-bits='0'>
@@ -102389,12 +102569,12 @@
         <parameter type-id='8c493d8a'/>
         <return type-id='48b5725f'/>
       </function-type>
-      <class-decl name='dir_context' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/fs.h' line='1995' column='1' id='d5476b80'>
+      <class-decl name='dir_context' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/fs.h' line='2001' column='1' id='d5476b80'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='actor' type-id='262124ef' visibility='default' filepath='include/linux/fs.h' line='1996' column='1'/>
+          <var-decl name='actor' type-id='262124ef' visibility='default' filepath='include/linux/fs.h' line='2002' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='64'>
-          <var-decl name='pos' type-id='69bf7bee' visibility='default' filepath='include/linux/fs.h' line='1997' column='1'/>
+          <var-decl name='pos' type-id='69bf7bee' visibility='default' filepath='include/linux/fs.h' line='2003' column='1'/>
         </data-member>
       </class-decl>
       <class-decl name='i2c_bus_recovery_info' size-in-bits='832' is-struct='yes' visibility='default' filepath='include/linux/i2c.h' line='632' column='1' id='d5526a99'>
@@ -102483,15 +102663,15 @@
         <return type-id='48b5725f'/>
       </function-type>
       <pointer-type-def type-id='ae79630f' size-in-bits='64' id='d59ce2e7'/>
-      <class-decl name='nl80211_wowlan_tcp_data_seq' size-in-bits='96' is-struct='yes' visibility='default' filepath='include/uapi/linux/nl80211.h' line='5663' column='1' id='d5a1b375'>
+      <class-decl name='nl80211_wowlan_tcp_data_seq' size-in-bits='96' is-struct='yes' visibility='default' filepath='include/uapi/linux/nl80211.h' line='5688' column='1' id='d5a1b375'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='start' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/nl80211.h' line='5664' column='1'/>
+          <var-decl name='start' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/nl80211.h' line='5689' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='32'>
-          <var-decl name='offset' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/nl80211.h' line='5664' column='1'/>
+          <var-decl name='offset' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/nl80211.h' line='5689' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='64'>
-          <var-decl name='len' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/nl80211.h' line='5664' column='1'/>
+          <var-decl name='len' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/nl80211.h' line='5689' column='1'/>
         </data-member>
       </class-decl>
       <pointer-type-def type-id='97f0888c' size-in-bits='64' id='d5a71d52'/>
@@ -103315,15 +103495,15 @@
         <parameter type-id='77e79a4b'/>
         <return type-id='48b5725f'/>
       </function-type>
-      <class-decl name='wiphy_iftype_ext_capab2' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='5292' column='1' id='d6e8a7b8'>
+      <class-decl name='wiphy_iftype_ext_capab2' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='5347' column='1' id='d6e8a7b8'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='iftype' type-id='86505f90' visibility='default' filepath='include/net/cfg80211.h' line='5293' column='1'/>
+          <var-decl name='iftype' type-id='86505f90' visibility='default' filepath='include/net/cfg80211.h' line='5348' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='32'>
-          <var-decl name='eml_capabilities' type-id='1dc6a898' visibility='default' filepath='include/net/cfg80211.h' line='5294' column='1'/>
+          <var-decl name='eml_capabilities' type-id='1dc6a898' visibility='default' filepath='include/net/cfg80211.h' line='5349' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='48'>
-          <var-decl name='mld_capa_and_ops' type-id='1dc6a898' visibility='default' filepath='include/net/cfg80211.h' line='5295' column='1'/>
+          <var-decl name='mld_capa_and_ops' type-id='1dc6a898' visibility='default' filepath='include/net/cfg80211.h' line='5350' column='1'/>
         </data-member>
       </class-decl>
       <array-type-def dimensions='1' type-id='a84c031d' size-in-bits='280' id='d6e8cc9d'>
@@ -105955,39 +106135,39 @@
         </data-member>
       </class-decl>
       <pointer-type-def type-id='a9559bf8' size-in-bits='64' id='dc1e097e'/>
-      <class-decl name='hid_usage' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/hid.h' line='440' column='1' id='dc1e3176'>
+      <class-decl name='hid_usage' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/hid.h' line='441' column='1' id='dc1e3176'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='hid' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='441' column='1'/>
+          <var-decl name='hid' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='442' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='32'>
-          <var-decl name='collection_index' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='442' column='1'/>
+          <var-decl name='collection_index' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='443' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='64'>
-          <var-decl name='usage_index' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='443' column='1'/>
+          <var-decl name='usage_index' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='444' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='96'>
-          <var-decl name='resolution_multiplier' type-id='8af57d41' visibility='default' filepath='include/linux/hid.h' line='444' column='1'/>
+          <var-decl name='resolution_multiplier' type-id='8af57d41' visibility='default' filepath='include/linux/hid.h' line='445' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='104'>
-          <var-decl name='wheel_factor' type-id='8af57d41' visibility='default' filepath='include/linux/hid.h' line='447' column='1'/>
+          <var-decl name='wheel_factor' type-id='8af57d41' visibility='default' filepath='include/linux/hid.h' line='448' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='112'>
-          <var-decl name='code' type-id='d315442e' visibility='default' filepath='include/linux/hid.h' line='448' column='1'/>
+          <var-decl name='code' type-id='d315442e' visibility='default' filepath='include/linux/hid.h' line='449' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='128'>
-          <var-decl name='type' type-id='8f048e17' visibility='default' filepath='include/linux/hid.h' line='449' column='1'/>
+          <var-decl name='type' type-id='8f048e17' visibility='default' filepath='include/linux/hid.h' line='450' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='136'>
-          <var-decl name='hat_min' type-id='8af57d41' visibility='default' filepath='include/linux/hid.h' line='450' column='1'/>
+          <var-decl name='hat_min' type-id='8af57d41' visibility='default' filepath='include/linux/hid.h' line='451' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='144'>
-          <var-decl name='hat_max' type-id='8af57d41' visibility='default' filepath='include/linux/hid.h' line='451' column='1'/>
+          <var-decl name='hat_max' type-id='8af57d41' visibility='default' filepath='include/linux/hid.h' line='452' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='152'>
-          <var-decl name='hat_dir' type-id='8af57d41' visibility='default' filepath='include/linux/hid.h' line='452' column='1'/>
+          <var-decl name='hat_dir' type-id='8af57d41' visibility='default' filepath='include/linux/hid.h' line='453' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='160'>
-          <var-decl name='wheel_accumulated' type-id='b55def60' visibility='default' filepath='include/linux/hid.h' line='453' column='1'/>
+          <var-decl name='wheel_accumulated' type-id='b55def60' visibility='default' filepath='include/linux/hid.h' line='454' column='1'/>
         </data-member>
       </class-decl>
       <pointer-type-def type-id='49b990e7' size-in-bits='64' id='dc1ef2b7'/>
@@ -107245,18 +107425,18 @@
       <pointer-type-def type-id='77fe651f' size-in-bits='64' id='de5dab7b'/>
       <pointer-type-def type-id='fad8dcd1' size-in-bits='64' id='de63df21'/>
       <qualified-type-def type-id='a81e67e2' const='yes' id='de640095'/>
-      <class-decl name='usb_class_driver' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/usb.h' line='1302' column='1' id='de68658d'>
+      <class-decl name='usb_class_driver' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/usb.h' line='1305' column='1' id='de68658d'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='name' type-id='26a90f95' visibility='default' filepath='include/linux/usb.h' line='1303' column='1'/>
+          <var-decl name='name' type-id='26a90f95' visibility='default' filepath='include/linux/usb.h' line='1306' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='64'>
-          <var-decl name='devnode' type-id='8cd77b5f' visibility='default' filepath='include/linux/usb.h' line='1304' column='1'/>
+          <var-decl name='devnode' type-id='8cd77b5f' visibility='default' filepath='include/linux/usb.h' line='1307' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='128'>
-          <var-decl name='fops' type-id='61758ee5' visibility='default' filepath='include/linux/usb.h' line='1305' column='1'/>
+          <var-decl name='fops' type-id='61758ee5' visibility='default' filepath='include/linux/usb.h' line='1308' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='192'>
-          <var-decl name='minor_base' type-id='95e97e5e' visibility='default' filepath='include/linux/usb.h' line='1306' column='1'/>
+          <var-decl name='minor_base' type-id='95e97e5e' visibility='default' filepath='include/linux/usb.h' line='1309' column='1'/>
         </data-member>
       </class-decl>
       <pointer-type-def type-id='e85fe596' size-in-bits='64' id='de6b64d0'/>
@@ -107911,7 +108091,7 @@
         </data-member>
       </class-decl>
       <qualified-type-def type-id='2b1e6e59' const='yes' id='e03e976a'/>
-      <enum-decl name='nl80211_chan_width' filepath='include/uapi/linux/nl80211.h' line='4920' column='1' id='e043cccc'>
+      <enum-decl name='nl80211_chan_width' filepath='include/uapi/linux/nl80211.h' line='4945' column='1' id='e043cccc'>
         <underlying-type type-id='9cac1fee'/>
         <enumerator name='NL80211_CHAN_WIDTH_20_NOHT' value='0'/>
         <enumerator name='NL80211_CHAN_WIDTH_20' value='1'/>
@@ -109323,12 +109503,12 @@
           <var-decl name='mibs' type-id='547691f8' visibility='default' filepath='include/net/snmp.h' line='105' column='1'/>
         </data-member>
       </class-decl>
-      <class-decl name='nl80211_vendor_cmd_info' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/uapi/linux/nl80211.h' line='6712' column='1' id='e223f110'>
+      <class-decl name='nl80211_vendor_cmd_info' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/uapi/linux/nl80211.h' line='6743' column='1' id='e223f110'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='vendor_id' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/nl80211.h' line='6713' column='1'/>
+          <var-decl name='vendor_id' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/nl80211.h' line='6744' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='32'>
-          <var-decl name='subcmd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/nl80211.h' line='6714' column='1'/>
+          <var-decl name='subcmd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/nl80211.h' line='6745' column='1'/>
         </data-member>
       </class-decl>
       <function-type size-in-bits='64' id='e2245803'>
@@ -109372,94 +109552,94 @@
           <var-decl name='array_buffer' type-id='1984aef9' visibility='default' filepath='kernel/trace/trace.h' line='293' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='512'>
-          <var-decl name='filtered_pids' type-id='1f6324ad' visibility='default' filepath='kernel/trace/trace.h' line='318' column='1'/>
+          <var-decl name='filtered_pids' type-id='1f6324ad' visibility='default' filepath='kernel/trace/trace.h' line='317' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='576'>
-          <var-decl name='filtered_no_pids' type-id='1f6324ad' visibility='default' filepath='kernel/trace/trace.h' line='319' column='1'/>
+          <var-decl name='filtered_no_pids' type-id='1f6324ad' visibility='default' filepath='kernel/trace/trace.h' line='318' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='640'>
-          <var-decl name='max_lock' type-id='641c41d1' visibility='default' filepath='kernel/trace/trace.h' line='333' column='1'/>
+          <var-decl name='max_lock' type-id='641c41d1' visibility='default' filepath='kernel/trace/trace.h' line='332' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='672'>
-          <var-decl name='buffer_disabled' type-id='95e97e5e' visibility='default' filepath='kernel/trace/trace.h' line='334' column='1'/>
+          <var-decl name='buffer_disabled' type-id='95e97e5e' visibility='default' filepath='kernel/trace/trace.h' line='333' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='704'>
-          <var-decl name='stop_count' type-id='95e97e5e' visibility='default' filepath='kernel/trace/trace.h' line='341' column='1'/>
+          <var-decl name='stop_count' type-id='95e97e5e' visibility='default' filepath='kernel/trace/trace.h' line='340' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='736'>
-          <var-decl name='clock_id' type-id='95e97e5e' visibility='default' filepath='kernel/trace/trace.h' line='342' column='1'/>
+          <var-decl name='clock_id' type-id='95e97e5e' visibility='default' filepath='kernel/trace/trace.h' line='341' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='768'>
-          <var-decl name='nr_topts' type-id='95e97e5e' visibility='default' filepath='kernel/trace/trace.h' line='343' column='1'/>
+          <var-decl name='nr_topts' type-id='95e97e5e' visibility='default' filepath='kernel/trace/trace.h' line='342' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='800'>
-          <var-decl name='clear_trace' type-id='b50a4934' visibility='default' filepath='kernel/trace/trace.h' line='344' column='1'/>
+          <var-decl name='clear_trace' type-id='b50a4934' visibility='default' filepath='kernel/trace/trace.h' line='343' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='832'>
-          <var-decl name='buffer_percent' type-id='95e97e5e' visibility='default' filepath='kernel/trace/trace.h' line='345' column='1'/>
+          <var-decl name='buffer_percent' type-id='95e97e5e' visibility='default' filepath='kernel/trace/trace.h' line='344' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='864'>
-          <var-decl name='n_err_log_entries' type-id='f0981eeb' visibility='default' filepath='kernel/trace/trace.h' line='346' column='1'/>
+          <var-decl name='n_err_log_entries' type-id='f0981eeb' visibility='default' filepath='kernel/trace/trace.h' line='345' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='896'>
-          <var-decl name='current_trace' type-id='0a18715a' visibility='default' filepath='kernel/trace/trace.h' line='347' column='1'/>
+          <var-decl name='current_trace' type-id='0a18715a' visibility='default' filepath='kernel/trace/trace.h' line='346' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='960'>
-          <var-decl name='trace_flags' type-id='f0981eeb' visibility='default' filepath='kernel/trace/trace.h' line='348' column='1'/>
+          <var-decl name='trace_flags' type-id='f0981eeb' visibility='default' filepath='kernel/trace/trace.h' line='347' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='992'>
-          <var-decl name='trace_flags_index' type-id='fc872715' visibility='default' filepath='kernel/trace/trace.h' line='349' column='1'/>
+          <var-decl name='trace_flags_index' type-id='fc872715' visibility='default' filepath='kernel/trace/trace.h' line='348' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1248'>
-          <var-decl name='flags' type-id='f0981eeb' visibility='default' filepath='kernel/trace/trace.h' line='350' column='1'/>
+          <var-decl name='flags' type-id='f0981eeb' visibility='default' filepath='kernel/trace/trace.h' line='349' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1280'>
-          <var-decl name='start_lock' type-id='f5c90b3f' visibility='default' filepath='kernel/trace/trace.h' line='351' column='1'/>
+          <var-decl name='start_lock' type-id='f5c90b3f' visibility='default' filepath='kernel/trace/trace.h' line='350' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1344'>
-          <var-decl name='err_log' type-id='72f469ec' visibility='default' filepath='kernel/trace/trace.h' line='352' column='1'/>
+          <var-decl name='err_log' type-id='72f469ec' visibility='default' filepath='kernel/trace/trace.h' line='351' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1472'>
-          <var-decl name='dir' type-id='27675065' visibility='default' filepath='kernel/trace/trace.h' line='353' column='1'/>
+          <var-decl name='dir' type-id='27675065' visibility='default' filepath='kernel/trace/trace.h' line='352' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1536'>
-          <var-decl name='options' type-id='27675065' visibility='default' filepath='kernel/trace/trace.h' line='354' column='1'/>
+          <var-decl name='options' type-id='27675065' visibility='default' filepath='kernel/trace/trace.h' line='353' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1600'>
-          <var-decl name='percpu_dir' type-id='27675065' visibility='default' filepath='kernel/trace/trace.h' line='355' column='1'/>
+          <var-decl name='percpu_dir' type-id='27675065' visibility='default' filepath='kernel/trace/trace.h' line='354' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1664'>
-          <var-decl name='event_dir' type-id='27675065' visibility='default' filepath='kernel/trace/trace.h' line='356' column='1'/>
+          <var-decl name='event_dir' type-id='27675065' visibility='default' filepath='kernel/trace/trace.h' line='355' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1728'>
-          <var-decl name='topts' type-id='e9037327' visibility='default' filepath='kernel/trace/trace.h' line='357' column='1'/>
+          <var-decl name='topts' type-id='e9037327' visibility='default' filepath='kernel/trace/trace.h' line='356' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1792'>
-          <var-decl name='systems' type-id='72f469ec' visibility='default' filepath='kernel/trace/trace.h' line='358' column='1'/>
+          <var-decl name='systems' type-id='72f469ec' visibility='default' filepath='kernel/trace/trace.h' line='357' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1920'>
-          <var-decl name='events' type-id='72f469ec' visibility='default' filepath='kernel/trace/trace.h' line='359' column='1'/>
+          <var-decl name='events' type-id='72f469ec' visibility='default' filepath='kernel/trace/trace.h' line='358' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='2048'>
-          <var-decl name='trace_marker_file' type-id='3d4ca6d2' visibility='default' filepath='kernel/trace/trace.h' line='360' column='1'/>
+          <var-decl name='trace_marker_file' type-id='3d4ca6d2' visibility='default' filepath='kernel/trace/trace.h' line='359' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='2112'>
-          <var-decl name='tracing_cpumask' type-id='b16b461b' visibility='default' filepath='kernel/trace/trace.h' line='361' column='1'/>
+          <var-decl name='tracing_cpumask' type-id='b16b461b' visibility='default' filepath='kernel/trace/trace.h' line='360' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='2176'>
-          <var-decl name='ref' type-id='95e97e5e' visibility='default' filepath='kernel/trace/trace.h' line='362' column='1'/>
+          <var-decl name='ref' type-id='95e97e5e' visibility='default' filepath='kernel/trace/trace.h' line='361' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='2208'>
-          <var-decl name='trace_ref' type-id='95e97e5e' visibility='default' filepath='kernel/trace/trace.h' line='363' column='1'/>
+          <var-decl name='trace_ref' type-id='95e97e5e' visibility='default' filepath='kernel/trace/trace.h' line='362' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='2240'>
-          <var-decl name='no_filter_buffering_ref' type-id='95e97e5e' visibility='default' filepath='kernel/trace/trace.h' line='377' column='1'/>
+          <var-decl name='no_filter_buffering_ref' type-id='95e97e5e' visibility='default' filepath='kernel/trace/trace.h' line='376' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='2304'>
-          <var-decl name='hist_vars' type-id='72f469ec' visibility='default' filepath='kernel/trace/trace.h' line='378' column='1'/>
+          <var-decl name='hist_vars' type-id='72f469ec' visibility='default' filepath='kernel/trace/trace.h' line='377' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='2432'>
-          <var-decl name='last_func_repeats' type-id='20b86b00' visibility='default' filepath='kernel/trace/trace.h' line='382' column='1'/>
+          <var-decl name='last_func_repeats' type-id='20b86b00' visibility='default' filepath='kernel/trace/trace.h' line='381' column='1'/>
         </data-member>
       </class-decl>
       <qualified-type-def type-id='46cf92da' const='yes' id='e281f141'/>
@@ -109666,15 +109846,15 @@
           <var-decl name='pin_ranges' type-id='72f469ec' visibility='default' filepath='drivers/pinctrl/../gpio/gpiolib.h' line='71' column='1'/>
         </data-member>
       </class-decl>
-      <class-decl name='tracer_flags' size-in-bits='192' is-struct='yes' visibility='default' filepath='kernel/trace/trace.h' line='489' column='1' id='e32a3610'>
+      <class-decl name='tracer_flags' size-in-bits='192' is-struct='yes' visibility='default' filepath='kernel/trace/trace.h' line='488' column='1' id='e32a3610'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='val' type-id='19c2251e' visibility='default' filepath='kernel/trace/trace.h' line='490' column='1'/>
+          <var-decl name='val' type-id='19c2251e' visibility='default' filepath='kernel/trace/trace.h' line='489' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='64'>
-          <var-decl name='opts' type-id='a0260edc' visibility='default' filepath='kernel/trace/trace.h' line='491' column='1'/>
+          <var-decl name='opts' type-id='a0260edc' visibility='default' filepath='kernel/trace/trace.h' line='490' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='128'>
-          <var-decl name='trace' type-id='0a18715a' visibility='default' filepath='kernel/trace/trace.h' line='492' column='1'/>
+          <var-decl name='trace' type-id='0a18715a' visibility='default' filepath='kernel/trace/trace.h' line='491' column='1'/>
         </data-member>
       </class-decl>
       <function-type size-in-bits='64' id='e32cf39f'>
@@ -110470,24 +110650,24 @@
       </function-type>
       <pointer-type-def type-id='07c93537' size-in-bits='64' id='e46f66f3'/>
       <typedef-decl name='uintptr_t' type-id='7359adad' filepath='include/linux/types.h' line='37' column='1' id='e475ab95'/>
-      <class-decl name='ieee80211_iface_limit' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='4958' column='1' id='e47a5a92'>
+      <class-decl name='ieee80211_iface_limit' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='5013' column='1' id='e47a5a92'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='max' type-id='1dc6a898' visibility='default' filepath='include/net/cfg80211.h' line='4959' column='1'/>
+          <var-decl name='max' type-id='1dc6a898' visibility='default' filepath='include/net/cfg80211.h' line='5014' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='16'>
-          <var-decl name='types' type-id='1dc6a898' visibility='default' filepath='include/net/cfg80211.h' line='4960' column='1'/>
+          <var-decl name='types' type-id='1dc6a898' visibility='default' filepath='include/net/cfg80211.h' line='5015' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='64'>
-          <var-decl name='android_backport_reserved1' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='4962' column='1'/>
+          <var-decl name='android_backport_reserved1' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5017' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='128'>
-          <var-decl name='android_backport_reserved2' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='4963' column='1'/>
+          <var-decl name='android_backport_reserved2' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5018' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='192'>
-          <var-decl name='android_vendor_data1' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='4965' column='1'/>
+          <var-decl name='android_vendor_data1' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5020' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='256'>
-          <var-decl name='android_vendor_data2' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='4966' column='1'/>
+          <var-decl name='android_vendor_data2' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5021' column='1'/>
         </data-member>
       </class-decl>
       <class-decl name='sk_psock_progs' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/skmsg.h' line='57' column='1' id='e48b8d96'>
@@ -114130,394 +114310,394 @@
           <var-decl name='skc_num' type-id='d315442e' visibility='default' filepath='include/net/sock.h' line='182' column='1'/>
         </data-member>
       </class-decl>
-      <class-decl name='__anonymous_struct__' size-in-bits='512' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1256' column='1' id='e7f4402b'>
+      <class-decl name='__anonymous_struct__' size-in-bits='512' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1268' column='1' id='e7f4402b'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='map_type' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1257' column='1'/>
+          <var-decl name='map_type' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1269' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='32'>
-          <var-decl name='key_size' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1258' column='1'/>
+          <var-decl name='key_size' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1270' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='64'>
-          <var-decl name='value_size' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1259' column='1'/>
+          <var-decl name='value_size' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1271' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='96'>
-          <var-decl name='max_entries' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1260' column='1'/>
+          <var-decl name='max_entries' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1272' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='128'>
-          <var-decl name='map_flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1261' column='1'/>
+          <var-decl name='map_flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1273' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='160'>
-          <var-decl name='inner_map_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1264' column='1'/>
+          <var-decl name='inner_map_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1276' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='192'>
-          <var-decl name='numa_node' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1265' column='1'/>
+          <var-decl name='numa_node' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1277' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='224'>
-          <var-decl name='map_name' type-id='ac1fa8c0' visibility='default' filepath='include/uapi/linux/bpf.h' line='1268' column='1'/>
+          <var-decl name='map_name' type-id='ac1fa8c0' visibility='default' filepath='include/uapi/linux/bpf.h' line='1280' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='352'>
-          <var-decl name='map_ifindex' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1269' column='1'/>
+          <var-decl name='map_ifindex' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1281' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='384'>
-          <var-decl name='btf_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1270' column='1'/>
+          <var-decl name='btf_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1282' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='416'>
-          <var-decl name='btf_key_type_id' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1271' column='1'/>
+          <var-decl name='btf_key_type_id' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1283' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='448'>
-          <var-decl name='btf_value_type_id' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1272' column='1'/>
+          <var-decl name='btf_value_type_id' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1284' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='480'>
-          <var-decl name='btf_vmlinux_value_type_id' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1273' column='1'/>
+          <var-decl name='btf_vmlinux_value_type_id' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1285' column='1'/>
         </data-member>
       </class-decl>
-      <class-decl name='__anonymous_struct__' size-in-bits='256' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1279' column='1' id='e7f4402c'>
+      <class-decl name='__anonymous_struct__' size-in-bits='256' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1291' column='1' id='e7f4402c'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='map_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1280' column='1'/>
+          <var-decl name='map_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1292' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='64'>
-          <var-decl name='key' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1281' column='1'/>
+          <var-decl name='key' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1293' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='128'>
-          <var-decl name='' type-id='ac5ab67f' visibility='default' filepath='include/uapi/linux/bpf.h' line='1282' column='1'/>
+          <var-decl name='' type-id='ac5ab67f' visibility='default' filepath='include/uapi/linux/bpf.h' line='1294' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='192'>
-          <var-decl name='flags' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1286' column='1'/>
+          <var-decl name='flags' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1298' column='1'/>
         </data-member>
       </class-decl>
-      <class-decl name='__anonymous_struct__' size-in-bits='448' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1289' column='1' id='e7f4402d'>
+      <class-decl name='__anonymous_struct__' size-in-bits='448' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1301' column='1' id='e7f4402d'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='in_batch' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1290' column='1'/>
+          <var-decl name='in_batch' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1302' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='64'>
-          <var-decl name='out_batch' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1293' column='1'/>
+          <var-decl name='out_batch' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1305' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='128'>
-          <var-decl name='keys' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1294' column='1'/>
+          <var-decl name='keys' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1306' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='192'>
-          <var-decl name='values' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1295' column='1'/>
+          <var-decl name='values' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1307' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='256'>
-          <var-decl name='count' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1296' column='1'/>
+          <var-decl name='count' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1308' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='288'>
-          <var-decl name='map_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1301' column='1'/>
+          <var-decl name='map_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1313' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='320'>
-          <var-decl name='elem_flags' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1302' column='1'/>
+          <var-decl name='elem_flags' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1314' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='384'>
-          <var-decl name='flags' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1303' column='1'/>
+          <var-decl name='flags' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1315' column='1'/>
         </data-member>
       </class-decl>
-      <class-decl name='__anonymous_struct__' size-in-bits='1024' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1306' column='1' id='e7f4402e'>
+      <class-decl name='__anonymous_struct__' size-in-bits='1024' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1318' column='1' id='e7f4402e'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='prog_type' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1307' column='1'/>
+          <var-decl name='prog_type' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1319' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='32'>
-          <var-decl name='insn_cnt' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1308' column='1'/>
+          <var-decl name='insn_cnt' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1320' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='64'>
-          <var-decl name='insns' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1309' column='1'/>
+          <var-decl name='insns' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1321' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='128'>
-          <var-decl name='license' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1310' column='1'/>
+          <var-decl name='license' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1322' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='192'>
-          <var-decl name='log_level' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1311' column='1'/>
+          <var-decl name='log_level' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1323' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='224'>
-          <var-decl name='log_size' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1312' column='1'/>
+          <var-decl name='log_size' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1324' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='256'>
-          <var-decl name='log_buf' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1313' column='1'/>
+          <var-decl name='log_buf' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1325' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='320'>
-          <var-decl name='kern_version' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1314' column='1'/>
+          <var-decl name='kern_version' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1326' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='352'>
-          <var-decl name='prog_flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1315' column='1'/>
+          <var-decl name='prog_flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1327' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='384'>
-          <var-decl name='prog_name' type-id='ac1fa8c0' visibility='default' filepath='include/uapi/linux/bpf.h' line='1316' column='1'/>
+          <var-decl name='prog_name' type-id='ac1fa8c0' visibility='default' filepath='include/uapi/linux/bpf.h' line='1328' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='512'>
-          <var-decl name='prog_ifindex' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1317' column='1'/>
+          <var-decl name='prog_ifindex' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1329' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='544'>
-          <var-decl name='expected_attach_type' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1322' column='1'/>
+          <var-decl name='expected_attach_type' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1334' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='576'>
-          <var-decl name='prog_btf_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1323' column='1'/>
+          <var-decl name='prog_btf_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1335' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='608'>
-          <var-decl name='func_info_rec_size' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1324' column='1'/>
+          <var-decl name='func_info_rec_size' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1336' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='640'>
-          <var-decl name='func_info' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1325' column='1'/>
+          <var-decl name='func_info' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1337' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='704'>
-          <var-decl name='func_info_cnt' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1326' column='1'/>
+          <var-decl name='func_info_cnt' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1338' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='736'>
-          <var-decl name='line_info_rec_size' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1327' column='1'/>
+          <var-decl name='line_info_rec_size' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1339' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='768'>
-          <var-decl name='line_info' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1328' column='1'/>
+          <var-decl name='line_info' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1340' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='832'>
-          <var-decl name='line_info_cnt' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1329' column='1'/>
+          <var-decl name='line_info_cnt' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1341' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='864'>
-          <var-decl name='attach_btf_id' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1330' column='1'/>
+          <var-decl name='attach_btf_id' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1342' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='896'>
-          <var-decl name='' type-id='ac5ab680' visibility='default' filepath='include/uapi/linux/bpf.h' line='1331' column='1'/>
+          <var-decl name='' type-id='ac5ab680' visibility='default' filepath='include/uapi/linux/bpf.h' line='1343' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='960'>
-          <var-decl name='fd_array' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1338' column='1'/>
+          <var-decl name='fd_array' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1350' column='1'/>
         </data-member>
       </class-decl>
-      <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1341' column='1' id='e7f4402f'>
+      <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1353' column='1' id='e7f4402f'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='pathname' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1342' column='1'/>
+          <var-decl name='pathname' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1354' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='64'>
-          <var-decl name='bpf_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1343' column='1'/>
+          <var-decl name='bpf_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1355' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='96'>
-          <var-decl name='file_flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1344' column='1'/>
+          <var-decl name='file_flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1356' column='1'/>
         </data-member>
       </class-decl>
-      <class-decl name='__anonymous_struct__' size-in-bits='160' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1347' column='1' id='e7f44030'>
+      <class-decl name='__anonymous_struct__' size-in-bits='160' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1359' column='1' id='e7f44030'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='target_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1348' column='1'/>
+          <var-decl name='target_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1360' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='32'>
-          <var-decl name='attach_bpf_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1349' column='1'/>
+          <var-decl name='attach_bpf_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1361' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='64'>
-          <var-decl name='attach_type' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1350' column='1'/>
+          <var-decl name='attach_type' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1362' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='96'>
-          <var-decl name='attach_flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1351' column='1'/>
+          <var-decl name='attach_flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1363' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='128'>
-          <var-decl name='replace_bpf_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1352' column='1'/>
+          <var-decl name='replace_bpf_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1364' column='1'/>
         </data-member>
       </class-decl>
-      <class-decl name='__anonymous_struct__' size-in-bits='576' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1358' column='1' id='e7f44031'>
+      <class-decl name='__anonymous_struct__' size-in-bits='576' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1370' column='1' id='e7f44031'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='prog_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1359' column='1'/>
+          <var-decl name='prog_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1371' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='32'>
-          <var-decl name='retval' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1360' column='1'/>
+          <var-decl name='retval' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1372' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='64'>
-          <var-decl name='data_size_in' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1361' column='1'/>
+          <var-decl name='data_size_in' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1373' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='96'>
-          <var-decl name='data_size_out' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1362' column='1'/>
+          <var-decl name='data_size_out' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1374' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='128'>
-          <var-decl name='data_in' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1366' column='1'/>
+          <var-decl name='data_in' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1378' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='192'>
-          <var-decl name='data_out' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1367' column='1'/>
+          <var-decl name='data_out' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1379' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='256'>
-          <var-decl name='repeat' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1368' column='1'/>
+          <var-decl name='repeat' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1380' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='288'>
-          <var-decl name='duration' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1369' column='1'/>
+          <var-decl name='duration' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1381' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='320'>
-          <var-decl name='ctx_size_in' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1370' column='1'/>
+          <var-decl name='ctx_size_in' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1382' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='352'>
-          <var-decl name='ctx_size_out' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1371' column='1'/>
+          <var-decl name='ctx_size_out' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1383' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='384'>
-          <var-decl name='ctx_in' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1375' column='1'/>
+          <var-decl name='ctx_in' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1387' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='448'>
-          <var-decl name='ctx_out' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1376' column='1'/>
+          <var-decl name='ctx_out' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1388' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='512'>
-          <var-decl name='flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1377' column='1'/>
+          <var-decl name='flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1389' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='544'>
-          <var-decl name='cpu' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1378' column='1'/>
+          <var-decl name='cpu' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1390' column='1'/>
         </data-member>
       </class-decl>
-      <class-decl name='__anonymous_struct__' size-in-bits='96' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1381' column='1' id='e7f44032'>
+      <class-decl name='__anonymous_struct__' size-in-bits='96' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1393' column='1' id='e7f44032'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='' type-id='ac5ab681' visibility='default' filepath='include/uapi/linux/bpf.h' line='1382' column='1'/>
+          <var-decl name='' type-id='ac5ab681' visibility='default' filepath='include/uapi/linux/bpf.h' line='1394' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='32'>
-          <var-decl name='next_id' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1389' column='1'/>
+          <var-decl name='next_id' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1401' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='64'>
-          <var-decl name='open_flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1390' column='1'/>
+          <var-decl name='open_flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1402' column='1'/>
         </data-member>
       </class-decl>
-      <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1393' column='1' id='e7f44033'>
+      <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1405' column='1' id='e7f44033'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='bpf_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1394' column='1'/>
+          <var-decl name='bpf_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1406' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='32'>
-          <var-decl name='info_len' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1395' column='1'/>
+          <var-decl name='info_len' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1407' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='64'>
-          <var-decl name='info' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1396' column='1'/>
+          <var-decl name='info' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1408' column='1'/>
         </data-member>
       </class-decl>
-      <class-decl name='__anonymous_struct__' size-in-bits='256' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1399' column='1' id='e7f44034'>
+      <class-decl name='__anonymous_struct__' size-in-bits='256' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1411' column='1' id='e7f44034'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='target_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1400' column='1'/>
+          <var-decl name='target_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1412' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='32'>
-          <var-decl name='attach_type' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1401' column='1'/>
+          <var-decl name='attach_type' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1413' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='64'>
-          <var-decl name='query_flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1402' column='1'/>
+          <var-decl name='query_flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1414' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='96'>
-          <var-decl name='attach_flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1403' column='1'/>
+          <var-decl name='attach_flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1415' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='128'>
-          <var-decl name='prog_ids' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1404' column='1'/>
+          <var-decl name='prog_ids' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1416' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='192'>
-          <var-decl name='prog_cnt' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1405' column='1'/>
+          <var-decl name='prog_cnt' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1417' column='1'/>
         </data-member>
       </class-decl>
-      <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1408' column='1' id='e7f44035'>
+      <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1420' column='1' id='e7f44035'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='name' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1409' column='1'/>
+          <var-decl name='name' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1421' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='64'>
-          <var-decl name='prog_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1410' column='1'/>
+          <var-decl name='prog_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1422' column='1'/>
         </data-member>
       </class-decl>
-      <class-decl name='__anonymous_struct__' size-in-bits='256' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1413' column='1' id='e7f44036'>
+      <class-decl name='__anonymous_struct__' size-in-bits='256' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1425' column='1' id='e7f44036'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='btf' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1414' column='1'/>
+          <var-decl name='btf' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1426' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='64'>
-          <var-decl name='btf_log_buf' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1415' column='1'/>
+          <var-decl name='btf_log_buf' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1427' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='128'>
-          <var-decl name='btf_size' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1416' column='1'/>
+          <var-decl name='btf_size' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1428' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='160'>
-          <var-decl name='btf_log_size' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1417' column='1'/>
+          <var-decl name='btf_log_size' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1429' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='192'>
-          <var-decl name='btf_log_level' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1418' column='1'/>
+          <var-decl name='btf_log_level' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1430' column='1'/>
         </data-member>
       </class-decl>
-      <class-decl name='__anonymous_struct__' size-in-bits='384' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1421' column='1' id='e7f44037'>
+      <class-decl name='__anonymous_struct__' size-in-bits='384' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1433' column='1' id='e7f44037'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='pid' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1422' column='1'/>
+          <var-decl name='pid' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1434' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='32'>
-          <var-decl name='fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1423' column='1'/>
+          <var-decl name='fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1435' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='64'>
-          <var-decl name='flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1424' column='1'/>
+          <var-decl name='flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1436' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='96'>
-          <var-decl name='buf_len' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1425' column='1'/>
+          <var-decl name='buf_len' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1437' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='128'>
-          <var-decl name='buf' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1426' column='1'/>
+          <var-decl name='buf' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1438' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='192'>
-          <var-decl name='prog_id' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1431' column='1'/>
+          <var-decl name='prog_id' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1443' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='224'>
-          <var-decl name='fd_type' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1432' column='1'/>
+          <var-decl name='fd_type' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1444' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='256'>
-          <var-decl name='probe_offset' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1433' column='1'/>
+          <var-decl name='probe_offset' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1445' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='320'>
-          <var-decl name='probe_addr' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1434' column='1'/>
+          <var-decl name='probe_addr' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1446' column='1'/>
         </data-member>
       </class-decl>
-      <class-decl name='__anonymous_struct__' size-in-bits='256' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1437' column='1' id='e7f44038'>
+      <class-decl name='__anonymous_struct__' size-in-bits='256' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1449' column='1' id='e7f44038'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='prog_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1438' column='1'/>
+          <var-decl name='prog_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1450' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='32'>
-          <var-decl name='' type-id='ac5ab682' visibility='default' filepath='include/uapi/linux/bpf.h' line='1439' column='1'/>
+          <var-decl name='' type-id='ac5ab682' visibility='default' filepath='include/uapi/linux/bpf.h' line='1451' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='64'>
-          <var-decl name='attach_type' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1443' column='1'/>
+          <var-decl name='attach_type' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1455' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='96'>
-          <var-decl name='flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1444' column='1'/>
+          <var-decl name='flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1456' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='128'>
-          <var-decl name='' type-id='ac5ab683' visibility='default' filepath='include/uapi/linux/bpf.h' line='1445' column='1'/>
+          <var-decl name='' type-id='ac5ab683' visibility='default' filepath='include/uapi/linux/bpf.h' line='1457' column='1'/>
         </data-member>
       </class-decl>
-      <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1461' column='1' id='e7f44039'>
+      <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1473' column='1' id='e7f44039'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='link_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1462' column='1'/>
+          <var-decl name='link_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1474' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='32'>
-          <var-decl name='new_prog_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1464' column='1'/>
+          <var-decl name='new_prog_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1476' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='64'>
-          <var-decl name='flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1465' column='1'/>
+          <var-decl name='flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1477' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='96'>
-          <var-decl name='old_prog_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1468' column='1'/>
+          <var-decl name='old_prog_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1480' column='1'/>
         </data-member>
       </class-decl>
-      <class-decl name='__anonymous_struct__' size-in-bits='32' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1471' column='1' id='e7f4403a'>
+      <class-decl name='__anonymous_struct__' size-in-bits='32' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1483' column='1' id='e7f4403a'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='link_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1472' column='1'/>
+          <var-decl name='link_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1484' column='1'/>
         </data-member>
       </class-decl>
-      <class-decl name='__anonymous_struct__' size-in-bits='32' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1475' column='1' id='e7f4403b'>
+      <class-decl name='__anonymous_struct__' size-in-bits='32' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1487' column='1' id='e7f4403b'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='type' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1476' column='1'/>
+          <var-decl name='type' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1488' column='1'/>
         </data-member>
       </class-decl>
-      <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1479' column='1' id='e7f4403c'>
+      <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1491' column='1' id='e7f4403c'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='link_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1480' column='1'/>
+          <var-decl name='link_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1492' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='32'>
-          <var-decl name='flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1481' column='1'/>
+          <var-decl name='flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1493' column='1'/>
         </data-member>
       </class-decl>
-      <class-decl name='__anonymous_struct__' size-in-bits='96' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1484' column='1' id='e7f4403d'>
+      <class-decl name='__anonymous_struct__' size-in-bits='96' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1496' column='1' id='e7f4403d'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='prog_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1485' column='1'/>
+          <var-decl name='prog_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1497' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='32'>
-          <var-decl name='map_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1486' column='1'/>
+          <var-decl name='map_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1498' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='64'>
-          <var-decl name='flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1487' column='1'/>
+          <var-decl name='flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1499' column='1'/>
         </data-member>
       </class-decl>
-      <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1447' column='1' id='e7f4403e'>
+      <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1459' column='1' id='e7f4403e'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='iter_info' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1448' column='1'/>
+          <var-decl name='iter_info' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1460' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='64'>
-          <var-decl name='iter_info_len' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1449' column='1'/>
+          <var-decl name='iter_info_len' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1461' column='1'/>
         </data-member>
       </class-decl>
-      <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1451' column='1' id='e7f4403f'>
+      <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1463' column='1' id='e7f4403f'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='bpf_cookie' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1456' column='1'/>
+          <var-decl name='bpf_cookie' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1468' column='1'/>
         </data-member>
       </class-decl>
       <class-decl name='__anonymous_struct__' size-in-bits='384' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/net/xfrm.h' line='180' column='1' id='e7f44040'>
@@ -114638,60 +114818,60 @@
           <var-decl name='more' type-id='f9b06939' visibility='default' filepath='include/linux/netdevice.h' line='3412' column='1'/>
         </data-member>
       </class-decl>
-      <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='5614' column='1' id='e7f44048'>
+      <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='5626' column='1' id='e7f44048'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='tp_name' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='5615' column='1'/>
+          <var-decl name='tp_name' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='5627' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='64'>
-          <var-decl name='tp_name_len' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='5616' column='1'/>
+          <var-decl name='tp_name_len' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='5628' column='1'/>
         </data-member>
       </class-decl>
-      <class-decl name='__anonymous_struct__' size-in-bits='96' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='5618' column='1' id='e7f44049'>
+      <class-decl name='__anonymous_struct__' size-in-bits='96' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='5630' column='1' id='e7f44049'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='attach_type' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='5619' column='1'/>
+          <var-decl name='attach_type' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='5631' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='32'>
-          <var-decl name='target_obj_id' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='5620' column='1'/>
+          <var-decl name='target_obj_id' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='5632' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='64'>
-          <var-decl name='target_btf_id' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='5621' column='1'/>
+          <var-decl name='target_btf_id' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='5633' column='1'/>
         </data-member>
       </class-decl>
-      <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='5623' column='1' id='e7f4404a'>
+      <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='5635' column='1' id='e7f4404a'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='cgroup_id' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='5624' column='1'/>
+          <var-decl name='cgroup_id' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='5636' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='64'>
-          <var-decl name='attach_type' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='5625' column='1'/>
+          <var-decl name='attach_type' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='5637' column='1'/>
         </data-member>
       </class-decl>
-      <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='5627' column='1' id='e7f4404b'>
+      <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='5639' column='1' id='e7f4404b'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='target_name' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='5628' column='1'/>
+          <var-decl name='target_name' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='5640' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='64'>
-          <var-decl name='target_name_len' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='5629' column='1'/>
+          <var-decl name='target_name_len' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='5641' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='96'>
-          <var-decl name='' type-id='ac5ab696' visibility='default' filepath='include/uapi/linux/bpf.h' line='5630' column='1'/>
+          <var-decl name='' type-id='ac5ab696' visibility='default' filepath='include/uapi/linux/bpf.h' line='5642' column='1'/>
         </data-member>
       </class-decl>
-      <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='5636' column='1' id='e7f4404c'>
+      <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='5648' column='1' id='e7f4404c'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='netns_ino' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='5637' column='1'/>
+          <var-decl name='netns_ino' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='5649' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='32'>
-          <var-decl name='attach_type' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='5638' column='1'/>
+          <var-decl name='attach_type' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='5650' column='1'/>
         </data-member>
       </class-decl>
-      <class-decl name='__anonymous_struct__' size-in-bits='32' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='5640' column='1' id='e7f4404d'>
+      <class-decl name='__anonymous_struct__' size-in-bits='32' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='5652' column='1' id='e7f4404d'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='ifindex' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='5641' column='1'/>
+          <var-decl name='ifindex' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='5653' column='1'/>
         </data-member>
       </class-decl>
-      <class-decl name='__anonymous_struct__' size-in-bits='32' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='5631' column='1' id='e7f4404e'>
+      <class-decl name='__anonymous_struct__' size-in-bits='32' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='5643' column='1' id='e7f4404e'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='map_id' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='5632' column='1'/>
+          <var-decl name='map_id' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='5644' column='1'/>
         </data-member>
       </class-decl>
       <class-decl name='__anonymous_struct__' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/net/netfilter/nf_conntrack.h' line='108' column='1' id='e7f4404f'/>
@@ -115102,12 +115282,12 @@
           <var-decl name='logflags' type-id='892641a4' visibility='default' filepath='include/net/netfilter/nf_log.h' line='34' column='1'/>
         </data-member>
       </class-decl>
-      <class-decl name='__anonymous_struct__' size-in-bits='896' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/net/cfg80211.h' line='6131' column='1' id='e7f4406f'>
+      <class-decl name='__anonymous_struct__' size-in-bits='896' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/net/cfg80211.h' line='6186' column='1' id='e7f4406f'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='addr' type-id='cf1a4160' visibility='default' filepath='include/net/cfg80211.h' line='6132' column='1'/>
+          <var-decl name='addr' type-id='cf1a4160' visibility='default' filepath='include/net/cfg80211.h' line='6187' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='64'>
-          <var-decl name='' type-id='ac5ab6a5' visibility='default' filepath='include/net/cfg80211.h' line='6133' column='1'/>
+          <var-decl name='' type-id='ac5ab6a5' visibility='default' filepath='include/net/cfg80211.h' line='6188' column='1'/>
         </data-member>
       </class-decl>
       <class-decl name='__anonymous_struct__' size-in-bits='72' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/net/cfg80211.h' line='386' column='1' id='e7f44070'>
@@ -115129,132 +115309,132 @@
           <var-decl name='len' type-id='f0981eeb' visibility='default' filepath='include/net/cfg80211.h' line='437' column='1'/>
         </data-member>
       </class-decl>
-      <class-decl name='__anonymous_struct__' size-in-bits='96' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/net/cfg80211.h' line='5324' column='1' id='e7f44072'>
+      <class-decl name='__anonymous_struct__' size-in-bits='96' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/net/cfg80211.h' line='5379' column='1' id='e7f44072'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='preambles' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5325' column='1'/>
+          <var-decl name='preambles' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5380' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='32'>
-          <var-decl name='bandwidths' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5326' column='1'/>
+          <var-decl name='bandwidths' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5381' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='64'>
-          <var-decl name='max_bursts_exponent' type-id='fdbf7a0f' visibility='default' filepath='include/net/cfg80211.h' line='5327' column='1'/>
+          <var-decl name='max_bursts_exponent' type-id='fdbf7a0f' visibility='default' filepath='include/net/cfg80211.h' line='5382' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='72'>
-          <var-decl name='max_ftms_per_burst' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5328' column='1'/>
+          <var-decl name='max_ftms_per_burst' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5383' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='80'>
-          <var-decl name='supported' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5329' column='1'/>
+          <var-decl name='supported' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5384' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='81'>
-          <var-decl name='asap' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5330' column='1'/>
+          <var-decl name='asap' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5385' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='82'>
-          <var-decl name='non_asap' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5331' column='1'/>
+          <var-decl name='non_asap' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5386' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='83'>
-          <var-decl name='request_lci' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5332' column='1'/>
+          <var-decl name='request_lci' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5387' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='84'>
-          <var-decl name='request_civicloc' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5333' column='1'/>
+          <var-decl name='request_civicloc' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5388' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='85'>
-          <var-decl name='trigger_based' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5334' column='1'/>
+          <var-decl name='trigger_based' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5389' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='86'>
-          <var-decl name='non_trigger_based' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5335' column='1'/>
+          <var-decl name='non_trigger_based' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5390' column='1'/>
         </data-member>
       </class-decl>
-      <class-decl name='__anonymous_struct__' size-in-bits='192' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/net/cfg80211.h' line='5710' column='1' id='e7f44073'>
+      <class-decl name='__anonymous_struct__' size-in-bits='192' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/net/cfg80211.h' line='5765' column='1' id='e7f44073'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='peer' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5711' column='1'/>
+          <var-decl name='peer' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5766' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='64'>
-          <var-decl name='vif' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5711' column='1'/>
+          <var-decl name='vif' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5766' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='128'>
-          <var-decl name='max_retry' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5712' column='1'/>
+          <var-decl name='max_retry' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5767' column='1'/>
         </data-member>
       </class-decl>
-      <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/net/cfg80211.h' line='5726' column='1' id='e7f44074'>
+      <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/net/cfg80211.h' line='5781' column='1' id='e7f44074'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='android_backport_reserved1' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5726' column='1'/>
+          <var-decl name='android_backport_reserved1' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5781' column='1'/>
         </data-member>
       </class-decl>
-      <class-decl name='__anonymous_struct__' size-in-bits='320' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/net/cfg80211.h' line='6102' column='1' id='e7f44075'>
+      <class-decl name='__anonymous_struct__' size-in-bits='320' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/net/cfg80211.h' line='6157' column='1' id='e7f44075'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='connected_addr' type-id='cf1a4160' visibility='default' filepath='include/net/cfg80211.h' line='6103' column='1'/>
+          <var-decl name='connected_addr' type-id='cf1a4160' visibility='default' filepath='include/net/cfg80211.h' line='6158' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='48'>
-          <var-decl name='ssid' type-id='e3dc4fdb' visibility='default' filepath='include/net/cfg80211.h' line='6104' column='1'/>
+          <var-decl name='ssid' type-id='e3dc4fdb' visibility='default' filepath='include/net/cfg80211.h' line='6159' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='304'>
-          <var-decl name='ssid_len' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='6105' column='1'/>
+          <var-decl name='ssid_len' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='6160' column='1'/>
         </data-member>
       </class-decl>
-      <class-decl name='__anonymous_struct__' size-in-bits='1920' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/net/cfg80211.h' line='6107' column='1' id='e7f44076'>
+      <class-decl name='__anonymous_struct__' size-in-bits='1920' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/net/cfg80211.h' line='6162' column='1' id='e7f44076'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='beacon_interval' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='6108' column='1'/>
+          <var-decl name='beacon_interval' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='6163' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='64'>
-          <var-decl name='preset_chandef' type-id='e07d69c8' visibility='default' filepath='include/net/cfg80211.h' line='6109' column='1'/>
+          <var-decl name='preset_chandef' type-id='e07d69c8' visibility='default' filepath='include/net/cfg80211.h' line='6164' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='832'>
-          <var-decl name='chandef' type-id='e07d69c8' visibility='default' filepath='include/net/cfg80211.h' line='6110' column='1'/>
+          <var-decl name='chandef' type-id='e07d69c8' visibility='default' filepath='include/net/cfg80211.h' line='6165' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1600'>
-          <var-decl name='id' type-id='e3dc4fdb' visibility='default' filepath='include/net/cfg80211.h' line='6111' column='1'/>
+          <var-decl name='id' type-id='e3dc4fdb' visibility='default' filepath='include/net/cfg80211.h' line='6166' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1856'>
-          <var-decl name='id_len' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='6112' column='1'/>
+          <var-decl name='id_len' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='6167' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1864'>
-          <var-decl name='id_up_len' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='6112' column='1'/>
+          <var-decl name='id_up_len' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='6167' column='1'/>
         </data-member>
       </class-decl>
-      <class-decl name='__anonymous_struct__' size-in-bits='1088' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/net/cfg80211.h' line='6114' column='1' id='e7f44077'>
+      <class-decl name='__anonymous_struct__' size-in-bits='1088' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/net/cfg80211.h' line='6169' column='1' id='e7f44077'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='preset_chandef' type-id='e07d69c8' visibility='default' filepath='include/net/cfg80211.h' line='6115' column='1'/>
+          <var-decl name='preset_chandef' type-id='e07d69c8' visibility='default' filepath='include/net/cfg80211.h' line='6170' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='768'>
-          <var-decl name='ssid' type-id='e3dc4fdb' visibility='default' filepath='include/net/cfg80211.h' line='6116' column='1'/>
+          <var-decl name='ssid' type-id='e3dc4fdb' visibility='default' filepath='include/net/cfg80211.h' line='6171' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1024'>
-          <var-decl name='ssid_len' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='6117' column='1'/>
+          <var-decl name='ssid_len' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='6172' column='1'/>
         </data-member>
       </class-decl>
-      <class-decl name='__anonymous_struct__' size-in-bits='1152' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/net/cfg80211.h' line='6119' column='1' id='e7f44078'>
+      <class-decl name='__anonymous_struct__' size-in-bits='1152' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/net/cfg80211.h' line='6174' column='1' id='e7f44078'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='current_bss' type-id='1819dec8' visibility='default' filepath='include/net/cfg80211.h' line='6120' column='1'/>
+          <var-decl name='current_bss' type-id='1819dec8' visibility='default' filepath='include/net/cfg80211.h' line='6175' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='64'>
-          <var-decl name='chandef' type-id='e07d69c8' visibility='default' filepath='include/net/cfg80211.h' line='6121' column='1'/>
+          <var-decl name='chandef' type-id='e07d69c8' visibility='default' filepath='include/net/cfg80211.h' line='6176' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='832'>
-          <var-decl name='beacon_interval' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='6122' column='1'/>
+          <var-decl name='beacon_interval' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='6177' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='864'>
-          <var-decl name='ssid' type-id='e3dc4fdb' visibility='default' filepath='include/net/cfg80211.h' line='6123' column='1'/>
+          <var-decl name='ssid' type-id='e3dc4fdb' visibility='default' filepath='include/net/cfg80211.h' line='6178' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1120'>
-          <var-decl name='ssid_len' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='6124' column='1'/>
+          <var-decl name='ssid_len' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='6179' column='1'/>
         </data-member>
       </class-decl>
-      <class-decl name='__anonymous_struct__' size-in-bits='768' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/net/cfg80211.h' line='6126' column='1' id='e7f44079'>
+      <class-decl name='__anonymous_struct__' size-in-bits='768' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/net/cfg80211.h' line='6181' column='1' id='e7f44079'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='chandef' type-id='e07d69c8' visibility='default' filepath='include/net/cfg80211.h' line='6127' column='1'/>
+          <var-decl name='chandef' type-id='e07d69c8' visibility='default' filepath='include/net/cfg80211.h' line='6182' column='1'/>
         </data-member>
       </class-decl>
-      <class-decl name='__anonymous_struct__' size-in-bits='832' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/net/cfg80211.h' line='6134' column='1' id='e7f4407a'>
+      <class-decl name='__anonymous_struct__' size-in-bits='832' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/net/cfg80211.h' line='6189' column='1' id='e7f4407a'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='beacon_interval' type-id='f0981eeb' visibility='default' filepath='include/net/cfg80211.h' line='6135' column='1'/>
+          <var-decl name='beacon_interval' type-id='f0981eeb' visibility='default' filepath='include/net/cfg80211.h' line='6190' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='64'>
-          <var-decl name='chandef' type-id='e07d69c8' visibility='default' filepath='include/net/cfg80211.h' line='6136' column='1'/>
+          <var-decl name='chandef' type-id='e07d69c8' visibility='default' filepath='include/net/cfg80211.h' line='6191' column='1'/>
         </data-member>
       </class-decl>
-      <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/net/cfg80211.h' line='6138' column='1' id='e7f4407b'>
+      <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/net/cfg80211.h' line='6193' column='1' id='e7f4407b'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='current_bss' type-id='1819dec8' visibility='default' filepath='include/net/cfg80211.h' line='6139' column='1'/>
+          <var-decl name='current_bss' type-id='1819dec8' visibility='default' filepath='include/net/cfg80211.h' line='6194' column='1'/>
         </data-member>
       </class-decl>
       <class-decl name='__anonymous_struct__' size-in-bits='96' is-struct='yes' is-anonymous='yes' visibility='default' filepath='sound/usb/card.h' line='194' column='1' id='e7f4407c'>
@@ -116064,18 +116244,18 @@
         </data-member>
       </class-decl>
       <pointer-type-def type-id='df81074e' size-in-bits='64' id='e9b5d134'/>
-      <class-decl name='cfg80211_pmsr_capabilities' size-in-bits='160' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='5319' column='1' id='e9bb2749'>
+      <class-decl name='cfg80211_pmsr_capabilities' size-in-bits='160' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='5374' column='1' id='e9bb2749'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='max_peers' type-id='f0981eeb' visibility='default' filepath='include/net/cfg80211.h' line='5320' column='1'/>
+          <var-decl name='max_peers' type-id='f0981eeb' visibility='default' filepath='include/net/cfg80211.h' line='5375' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='32'>
-          <var-decl name='report_ap_tsf' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5321' column='1'/>
+          <var-decl name='report_ap_tsf' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5376' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='33'>
-          <var-decl name='randomize_mac_addr' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5322' column='1'/>
+          <var-decl name='randomize_mac_addr' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5377' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='64'>
-          <var-decl name='ftm' type-id='e7f44072' visibility='default' filepath='include/net/cfg80211.h' line='5336' column='1'/>
+          <var-decl name='ftm' type-id='e7f44072' visibility='default' filepath='include/net/cfg80211.h' line='5391' column='1'/>
         </data-member>
       </class-decl>
       <class-decl name='clk_rate_request' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/linux/clk-provider.h' line='56' column='1' id='e9bea70c'>
@@ -116232,30 +116412,30 @@
           <var-decl name='poll' type-id='b347e5ac' visibility='default' filepath='include/linux/cgroup-defs.h' line='614' column='1'/>
         </data-member>
       </class-decl>
-      <class-decl name='sched_group_capacity' size-in-bits='384' is-struct='yes' visibility='default' filepath='kernel/sched/sched.h' line='1838' column='1' id='ea3de64d'>
+      <class-decl name='sched_group_capacity' size-in-bits='384' is-struct='yes' visibility='default' filepath='kernel/sched/sched.h' line='1837' column='1' id='ea3de64d'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='ref' type-id='49178f86' visibility='default' filepath='kernel/sched/sched.h' line='1839' column='1'/>
+          <var-decl name='ref' type-id='49178f86' visibility='default' filepath='kernel/sched/sched.h' line='1838' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='64'>
-          <var-decl name='capacity' type-id='7359adad' visibility='default' filepath='kernel/sched/sched.h' line='1844' column='1'/>
+          <var-decl name='capacity' type-id='7359adad' visibility='default' filepath='kernel/sched/sched.h' line='1843' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='128'>
-          <var-decl name='min_capacity' type-id='7359adad' visibility='default' filepath='kernel/sched/sched.h' line='1845' column='1'/>
+          <var-decl name='min_capacity' type-id='7359adad' visibility='default' filepath='kernel/sched/sched.h' line='1844' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='192'>
-          <var-decl name='max_capacity' type-id='7359adad' visibility='default' filepath='kernel/sched/sched.h' line='1846' column='1'/>
+          <var-decl name='max_capacity' type-id='7359adad' visibility='default' filepath='kernel/sched/sched.h' line='1845' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='256'>
-          <var-decl name='next_update' type-id='7359adad' visibility='default' filepath='kernel/sched/sched.h' line='1847' column='1'/>
+          <var-decl name='next_update' type-id='7359adad' visibility='default' filepath='kernel/sched/sched.h' line='1846' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='320'>
-          <var-decl name='imbalance' type-id='95e97e5e' visibility='default' filepath='kernel/sched/sched.h' line='1848' column='1'/>
+          <var-decl name='imbalance' type-id='95e97e5e' visibility='default' filepath='kernel/sched/sched.h' line='1847' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='352'>
-          <var-decl name='id' type-id='95e97e5e' visibility='default' filepath='kernel/sched/sched.h' line='1851' column='1'/>
+          <var-decl name='id' type-id='95e97e5e' visibility='default' filepath='kernel/sched/sched.h' line='1850' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='384'>
-          <var-decl name='cpumask' type-id='c99b5ecd' visibility='default' filepath='kernel/sched/sched.h' line='1854' column='1'/>
+          <var-decl name='cpumask' type-id='c99b5ecd' visibility='default' filepath='kernel/sched/sched.h' line='1853' column='1'/>
         </data-member>
       </class-decl>
       <pointer-type-def type-id='ae99f6b5' size-in-bits='64' id='ea44fe69'/>
@@ -119568,33 +119748,33 @@
       <pointer-type-def type-id='f83bf2cd' size-in-bits='64' id='f13b7179'/>
       <qualified-type-def type-id='01c546da' const='yes' id='f1415d4d'/>
       <pointer-type-def type-id='a7b38e12' size-in-bits='64' id='f14ddf44'/>
-      <class-decl name='usb_sg_request' size-in-bits='704' is-struct='yes' visibility='default' filepath='include/linux/usb.h' line='1907' column='1' id='f14efa5e'>
+      <class-decl name='usb_sg_request' size-in-bits='704' is-struct='yes' visibility='default' filepath='include/linux/usb.h' line='1910' column='1' id='f14efa5e'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='status' type-id='95e97e5e' visibility='default' filepath='include/linux/usb.h' line='1908' column='1'/>
+          <var-decl name='status' type-id='95e97e5e' visibility='default' filepath='include/linux/usb.h' line='1911' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='64'>
-          <var-decl name='bytes' type-id='b59d7dce' visibility='default' filepath='include/linux/usb.h' line='1909' column='1'/>
+          <var-decl name='bytes' type-id='b59d7dce' visibility='default' filepath='include/linux/usb.h' line='1912' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='128'>
-          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='include/linux/usb.h' line='1915' column='1'/>
+          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='include/linux/usb.h' line='1918' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='192'>
-          <var-decl name='dev' type-id='25e60cb2' visibility='default' filepath='include/linux/usb.h' line='1917' column='1'/>
+          <var-decl name='dev' type-id='25e60cb2' visibility='default' filepath='include/linux/usb.h' line='1920' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='256'>
-          <var-decl name='pipe' type-id='95e97e5e' visibility='default' filepath='include/linux/usb.h' line='1918' column='1'/>
+          <var-decl name='pipe' type-id='95e97e5e' visibility='default' filepath='include/linux/usb.h' line='1921' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='288'>
-          <var-decl name='entries' type-id='95e97e5e' visibility='default' filepath='include/linux/usb.h' line='1920' column='1'/>
+          <var-decl name='entries' type-id='95e97e5e' visibility='default' filepath='include/linux/usb.h' line='1923' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='320'>
-          <var-decl name='urbs' type-id='db81fc08' visibility='default' filepath='include/linux/usb.h' line='1921' column='1'/>
+          <var-decl name='urbs' type-id='db81fc08' visibility='default' filepath='include/linux/usb.h' line='1924' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='384'>
-          <var-decl name='count' type-id='95e97e5e' visibility='default' filepath='include/linux/usb.h' line='1923' column='1'/>
+          <var-decl name='count' type-id='95e97e5e' visibility='default' filepath='include/linux/usb.h' line='1926' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='448'>
-          <var-decl name='complete' type-id='f9fef04f' visibility='default' filepath='include/linux/usb.h' line='1924' column='1'/>
+          <var-decl name='complete' type-id='f9fef04f' visibility='default' filepath='include/linux/usb.h' line='1927' column='1'/>
         </data-member>
       </class-decl>
       <class-decl name='drm_writeback_connector' size-in-bits='16320' is-struct='yes' visibility='default' filepath='include/drm/drm_writeback.h' line='21' column='1' id='f14fc18d'>
@@ -119830,12 +120010,12 @@
       <array-type-def dimensions='1' type-id='a28355c2' size-in-bits='1408' id='f2003288'>
         <subrange length='11' type-id='7ff19f0f' id='847bc017'/>
       </array-type-def>
-      <class-decl name='tracer_opt' size-in-bits='128' is-struct='yes' visibility='default' filepath='kernel/trace/trace.h' line='480' column='1' id='f20168e6'>
+      <class-decl name='tracer_opt' size-in-bits='128' is-struct='yes' visibility='default' filepath='kernel/trace/trace.h' line='479' column='1' id='f20168e6'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='kernel/trace/trace.h' line='481' column='1'/>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='kernel/trace/trace.h' line='480' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='64'>
-          <var-decl name='bit' type-id='19c2251e' visibility='default' filepath='kernel/trace/trace.h' line='482' column='1'/>
+          <var-decl name='bit' type-id='19c2251e' visibility='default' filepath='kernel/trace/trace.h' line='481' column='1'/>
         </data-member>
       </class-decl>
       <qualified-type-def type-id='dec44472' const='yes' id='f213bd85'/>
@@ -122017,15 +122197,15 @@
         </data-member>
       </class-decl>
       <pointer-type-def type-id='3a58d3ba' size-in-bits='64' id='f7e7b3e8'/>
-      <class-decl name='cpufreq_frequency_table' size-in-bits='96' is-struct='yes' visibility='default' filepath='include/linux/cpufreq.h' line='668' column='1' id='f7f17df9'>
+      <class-decl name='cpufreq_frequency_table' size-in-bits='96' is-struct='yes' visibility='default' filepath='include/linux/cpufreq.h' line='673' column='1' id='f7f17df9'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='flags' type-id='f0981eeb' visibility='default' filepath='include/linux/cpufreq.h' line='669' column='1'/>
+          <var-decl name='flags' type-id='f0981eeb' visibility='default' filepath='include/linux/cpufreq.h' line='674' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='32'>
-          <var-decl name='driver_data' type-id='f0981eeb' visibility='default' filepath='include/linux/cpufreq.h' line='670' column='1'/>
+          <var-decl name='driver_data' type-id='f0981eeb' visibility='default' filepath='include/linux/cpufreq.h' line='675' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='64'>
-          <var-decl name='frequency' type-id='f0981eeb' visibility='default' filepath='include/linux/cpufreq.h' line='671' column='1'/>
+          <var-decl name='frequency' type-id='f0981eeb' visibility='default' filepath='include/linux/cpufreq.h' line='676' column='1'/>
         </data-member>
       </class-decl>
       <pointer-type-def type-id='4fc2605b' size-in-bits='64' id='f7f718cb'/>
@@ -123199,7 +123379,7 @@
         <parameter type-id='ca9354d1'/>
         <return type-id='95e97e5e'/>
       </function-type>
-      <enum-decl name='hid_type' filepath='include/linux/hid.h' line='541' column='1' id='fa954a4e'>
+      <enum-decl name='hid_type' filepath='include/linux/hid.h' line='542' column='1' id='fa954a4e'>
         <underlying-type type-id='9cac1fee'/>
         <enumerator name='HID_TYPE_OTHER' value='0'/>
         <enumerator name='HID_TYPE_USBMOUSE' value='1'/>
@@ -123508,15 +123688,15 @@
       </function-type>
       <typedef-decl name='spinlock_t' type-id='53fb272e' filepath='include/linux/spinlock_types.h' line='29' column='1' id='fb4018a0'/>
       <pointer-type-def type-id='cf96947e' size-in-bits='64' id='fb424bb0'/>
-      <class-decl name='sb_writers' size-in-bits='2560' is-struct='yes' visibility='default' filepath='include/linux/fs.h' line='1492' column='1' id='fb476a2b'>
+      <class-decl name='sb_writers' size-in-bits='2560' is-struct='yes' visibility='default' filepath='include/linux/fs.h' line='1498' column='1' id='fb476a2b'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='frozen' type-id='95e97e5e' visibility='default' filepath='include/linux/fs.h' line='1493' column='1'/>
+          <var-decl name='frozen' type-id='95e97e5e' visibility='default' filepath='include/linux/fs.h' line='1499' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='64'>
-          <var-decl name='wait_unfrozen' type-id='b5ab048f' visibility='default' filepath='include/linux/fs.h' line='1494' column='1'/>
+          <var-decl name='wait_unfrozen' type-id='b5ab048f' visibility='default' filepath='include/linux/fs.h' line='1500' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='256'>
-          <var-decl name='rw_sem' type-id='a09ef5a6' visibility='default' filepath='include/linux/fs.h' line='1495' column='1'/>
+          <var-decl name='rw_sem' type-id='a09ef5a6' visibility='default' filepath='include/linux/fs.h' line='1501' column='1'/>
         </data-member>
       </class-decl>
       <qualified-type-def type-id='0f042891' const='yes' id='fb4943b2'/>
@@ -123864,27 +124044,27 @@
           <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/pci.h' line='774' column='1'/>
         </data-member>
       </class-decl>
-      <class-decl name='wiphy_vendor_command' size-in-bits='448' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='5245' column='1' id='fc206ed1'>
+      <class-decl name='wiphy_vendor_command' size-in-bits='448' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='5300' column='1' id='fc206ed1'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='info' type-id='e223f110' visibility='default' filepath='include/net/cfg80211.h' line='5246' column='1'/>
+          <var-decl name='info' type-id='e223f110' visibility='default' filepath='include/net/cfg80211.h' line='5301' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='64'>
-          <var-decl name='flags' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5247' column='1'/>
+          <var-decl name='flags' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5302' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='128'>
-          <var-decl name='doit' type-id='a9032da3' visibility='default' filepath='include/net/cfg80211.h' line='5248' column='1'/>
+          <var-decl name='doit' type-id='a9032da3' visibility='default' filepath='include/net/cfg80211.h' line='5303' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='192'>
-          <var-decl name='dumpit' type-id='dcf81beb' visibility='default' filepath='include/net/cfg80211.h' line='5250' column='1'/>
+          <var-decl name='dumpit' type-id='dcf81beb' visibility='default' filepath='include/net/cfg80211.h' line='5305' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='256'>
-          <var-decl name='policy' type-id='109cdb66' visibility='default' filepath='include/net/cfg80211.h' line='5253' column='1'/>
+          <var-decl name='policy' type-id='109cdb66' visibility='default' filepath='include/net/cfg80211.h' line='5308' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='320'>
-          <var-decl name='maxattr' type-id='f0981eeb' visibility='default' filepath='include/net/cfg80211.h' line='5254' column='1'/>
+          <var-decl name='maxattr' type-id='f0981eeb' visibility='default' filepath='include/net/cfg80211.h' line='5309' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='384'>
-          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5256' column='1'/>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5311' column='1'/>
         </data-member>
       </class-decl>
       <function-type size-in-bits='64' id='fc224242'>
@@ -123908,18 +124088,18 @@
       </class-decl>
       <pointer-type-def type-id='392af4e9' size-in-bits='64' id='fc4f83c1'/>
       <pointer-type-def type-id='58dbb714' size-in-bits='64' id='fc616182'/>
-      <class-decl name='usb_iso_packet_descriptor' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/usb.h' line='1379' column='1' id='fc6d031c'>
+      <class-decl name='usb_iso_packet_descriptor' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/usb.h' line='1382' column='1' id='fc6d031c'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='offset' type-id='f0981eeb' visibility='default' filepath='include/linux/usb.h' line='1380' column='1'/>
+          <var-decl name='offset' type-id='f0981eeb' visibility='default' filepath='include/linux/usb.h' line='1383' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='32'>
-          <var-decl name='length' type-id='f0981eeb' visibility='default' filepath='include/linux/usb.h' line='1381' column='1'/>
+          <var-decl name='length' type-id='f0981eeb' visibility='default' filepath='include/linux/usb.h' line='1384' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='64'>
-          <var-decl name='actual_length' type-id='f0981eeb' visibility='default' filepath='include/linux/usb.h' line='1382' column='1'/>
+          <var-decl name='actual_length' type-id='f0981eeb' visibility='default' filepath='include/linux/usb.h' line='1385' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='96'>
-          <var-decl name='status' type-id='95e97e5e' visibility='default' filepath='include/linux/usb.h' line='1383' column='1'/>
+          <var-decl name='status' type-id='95e97e5e' visibility='default' filepath='include/linux/usb.h' line='1386' column='1'/>
         </data-member>
       </class-decl>
       <pointer-type-def type-id='4234e231' size-in-bits='64' id='fc6f14a9'/>
@@ -124124,72 +124304,72 @@
           <var-decl name='comp_extra' type-id='f0981eeb' visibility='default' filepath='include/linux/ppp-comp.h' line='83' column='1'/>
         </data-member>
       </class-decl>
-      <class-decl name='tracer' size-in-bits='1216' is-struct='yes' visibility='default' filepath='kernel/trace/trace.h' line='526' column='1' id='fd1f8b7c'>
+      <class-decl name='tracer' size-in-bits='1216' is-struct='yes' visibility='default' filepath='kernel/trace/trace.h' line='525' column='1' id='fd1f8b7c'>
         <data-member access='public' layout-offset-in-bits='0'>
-          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='kernel/trace/trace.h' line='527' column='1'/>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='kernel/trace/trace.h' line='526' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='64'>
-          <var-decl name='init' type-id='30b9fb16' visibility='default' filepath='kernel/trace/trace.h' line='528' column='1'/>
+          <var-decl name='init' type-id='30b9fb16' visibility='default' filepath='kernel/trace/trace.h' line='527' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='128'>
-          <var-decl name='reset' type-id='578c706b' visibility='default' filepath='kernel/trace/trace.h' line='529' column='1'/>
+          <var-decl name='reset' type-id='578c706b' visibility='default' filepath='kernel/trace/trace.h' line='528' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='192'>
-          <var-decl name='start' type-id='578c706b' visibility='default' filepath='kernel/trace/trace.h' line='530' column='1'/>
+          <var-decl name='start' type-id='578c706b' visibility='default' filepath='kernel/trace/trace.h' line='529' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='256'>
-          <var-decl name='stop' type-id='578c706b' visibility='default' filepath='kernel/trace/trace.h' line='531' column='1'/>
+          <var-decl name='stop' type-id='578c706b' visibility='default' filepath='kernel/trace/trace.h' line='530' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='320'>
-          <var-decl name='update_thresh' type-id='30b9fb16' visibility='default' filepath='kernel/trace/trace.h' line='532' column='1'/>
+          <var-decl name='update_thresh' type-id='30b9fb16' visibility='default' filepath='kernel/trace/trace.h' line='531' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='384'>
-          <var-decl name='open' type-id='29bf40b4' visibility='default' filepath='kernel/trace/trace.h' line='533' column='1'/>
+          <var-decl name='open' type-id='29bf40b4' visibility='default' filepath='kernel/trace/trace.h' line='532' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='448'>
-          <var-decl name='pipe_open' type-id='29bf40b4' visibility='default' filepath='kernel/trace/trace.h' line='534' column='1'/>
+          <var-decl name='pipe_open' type-id='29bf40b4' visibility='default' filepath='kernel/trace/trace.h' line='533' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='512'>
-          <var-decl name='close' type-id='29bf40b4' visibility='default' filepath='kernel/trace/trace.h' line='535' column='1'/>
+          <var-decl name='close' type-id='29bf40b4' visibility='default' filepath='kernel/trace/trace.h' line='534' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='576'>
-          <var-decl name='pipe_close' type-id='29bf40b4' visibility='default' filepath='kernel/trace/trace.h' line='536' column='1'/>
+          <var-decl name='pipe_close' type-id='29bf40b4' visibility='default' filepath='kernel/trace/trace.h' line='535' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='640'>
-          <var-decl name='read' type-id='43a53075' visibility='default' filepath='kernel/trace/trace.h' line='537' column='1'/>
+          <var-decl name='read' type-id='43a53075' visibility='default' filepath='kernel/trace/trace.h' line='536' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='704'>
-          <var-decl name='splice_read' type-id='0d8953a0' visibility='default' filepath='kernel/trace/trace.h' line='540' column='1'/>
+          <var-decl name='splice_read' type-id='0d8953a0' visibility='default' filepath='kernel/trace/trace.h' line='539' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='768'>
-          <var-decl name='print_header' type-id='0f294852' visibility='default' filepath='kernel/trace/trace.h' line='550' column='1'/>
+          <var-decl name='print_header' type-id='0f294852' visibility='default' filepath='kernel/trace/trace.h' line='549' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='832'>
-          <var-decl name='print_line' type-id='cfbdf512' visibility='default' filepath='kernel/trace/trace.h' line='551' column='1'/>
+          <var-decl name='print_line' type-id='cfbdf512' visibility='default' filepath='kernel/trace/trace.h' line='550' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='896'>
-          <var-decl name='set_flag' type-id='d01e1ab3' visibility='default' filepath='kernel/trace/trace.h' line='553' column='1'/>
+          <var-decl name='set_flag' type-id='d01e1ab3' visibility='default' filepath='kernel/trace/trace.h' line='552' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='960'>
-          <var-decl name='flag_changed' type-id='e3e70e04' visibility='default' filepath='kernel/trace/trace.h' line='556' column='1'/>
+          <var-decl name='flag_changed' type-id='e3e70e04' visibility='default' filepath='kernel/trace/trace.h' line='555' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1024'>
-          <var-decl name='next' type-id='0a18715a' visibility='default' filepath='kernel/trace/trace.h' line='558' column='1'/>
+          <var-decl name='next' type-id='0a18715a' visibility='default' filepath='kernel/trace/trace.h' line='557' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1088'>
-          <var-decl name='flags' type-id='aef13606' visibility='default' filepath='kernel/trace/trace.h' line='559' column='1'/>
+          <var-decl name='flags' type-id='aef13606' visibility='default' filepath='kernel/trace/trace.h' line='558' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1152'>
-          <var-decl name='enabled' type-id='95e97e5e' visibility='default' filepath='kernel/trace/trace.h' line='560' column='1'/>
+          <var-decl name='enabled' type-id='95e97e5e' visibility='default' filepath='kernel/trace/trace.h' line='559' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1184'>
-          <var-decl name='print_max' type-id='b50a4934' visibility='default' filepath='kernel/trace/trace.h' line='561' column='1'/>
+          <var-decl name='print_max' type-id='b50a4934' visibility='default' filepath='kernel/trace/trace.h' line='560' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1192'>
-          <var-decl name='allow_instances' type-id='b50a4934' visibility='default' filepath='kernel/trace/trace.h' line='562' column='1'/>
+          <var-decl name='allow_instances' type-id='b50a4934' visibility='default' filepath='kernel/trace/trace.h' line='561' column='1'/>
         </data-member>
         <data-member access='public' layout-offset-in-bits='1200'>
-          <var-decl name='noboot' type-id='b50a4934' visibility='default' filepath='kernel/trace/trace.h' line='567' column='1'/>
+          <var-decl name='noboot' type-id='b50a4934' visibility='default' filepath='kernel/trace/trace.h' line='566' column='1'/>
         </data-member>
       </class-decl>
       <class-decl name='rtc_class_ops' size-in-bits='640' is-struct='yes' visibility='default' filepath='include/linux/rtc.h' line='60' column='1' id='fd1fa73c'>
@@ -125362,7 +125542,44 @@
         </data-member>
       </class-decl>
       <qualified-type-def type-id='772a4ddf' const='yes' id='ff1ab2e4'/>
-      <class-decl name='kstatfs' is-struct='yes' visibility='default' is-declaration-only='yes' id='ff1c7c9b'/>
+      <class-decl name='kstatfs' size-in-bits='960' is-struct='yes' visibility='default' filepath='include/linux/statfs.h' line='9' column='1' id='ff1c7c9b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='f_type' type-id='bd54fe1a' visibility='default' filepath='include/linux/statfs.h' line='10' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='f_bsize' type-id='bd54fe1a' visibility='default' filepath='include/linux/statfs.h' line='11' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='f_blocks' type-id='91ce1af9' visibility='default' filepath='include/linux/statfs.h' line='12' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='f_bfree' type-id='91ce1af9' visibility='default' filepath='include/linux/statfs.h' line='13' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='f_bavail' type-id='91ce1af9' visibility='default' filepath='include/linux/statfs.h' line='14' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='f_files' type-id='91ce1af9' visibility='default' filepath='include/linux/statfs.h' line='15' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='f_ffree' type-id='91ce1af9' visibility='default' filepath='include/linux/statfs.h' line='16' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='f_fsid' type-id='ac895711' visibility='default' filepath='include/linux/statfs.h' line='17' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='f_namelen' type-id='bd54fe1a' visibility='default' filepath='include/linux/statfs.h' line='18' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='f_frsize' type-id='bd54fe1a' visibility='default' filepath='include/linux/statfs.h' line='19' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='f_flags' type-id='bd54fe1a' visibility='default' filepath='include/linux/statfs.h' line='20' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='f_spare' type-id='5d4602e8' visibility='default' filepath='include/linux/statfs.h' line='21' column='1'/>
+        </data-member>
+      </class-decl>
       <class-decl name='tcpci_data' size-in-bits='512' is-struct='yes' visibility='default' filepath='drivers/usb/typec/tcpm/tcpci.h' line='186' column='1' id='ff22cb55'>
         <data-member access='public' layout-offset-in-bits='0'>
           <var-decl name='regmap' type-id='29af9a71' visibility='default' filepath='drivers/usb/typec/tcpm/tcpci.h' line='187' column='1'/>
@@ -125630,7 +125847,7 @@
       <pointer-type-def type-id='46f53066' size-in-bits='64' id='fffb07a4'/>
       <qualified-type-def type-id='55efd1a3' const='yes' id='fffdaf52'/>
       <var-decl name='GKI_struct_blk_mq_alloc_data' type-id='17c43c95' mangled-name='GKI_struct_blk_mq_alloc_data' visibility='default' filepath='block/vendor_hooks.c' line='22' column='1' elf-symbol-id='GKI_struct_blk_mq_alloc_data'/>
-      <var-decl name='GKI_struct_readahead_control' type-id='9ec8ec17' mangled-name='GKI_struct_readahead_control' visibility='default' filepath='drivers/android/vendor_hooks.c' line='423' column='1' elf-symbol-id='GKI_struct_readahead_control'/>
+      <var-decl name='GKI_struct_readahead_control' type-id='9ec8ec17' mangled-name='GKI_struct_readahead_control' visibility='default' filepath='drivers/android/vendor_hooks.c' line='432' column='1' elf-symbol-id='GKI_struct_readahead_control'/>
       <var-decl name='GKI_struct_selinux_state' type-id='4ae52763' mangled-name='GKI_struct_selinux_state' visibility='default' filepath='security/selinux/vendor_hooks.c' line='21' column='1' elf-symbol-id='GKI_struct_selinux_state'/>
       <function-decl name='I_BDEV' mangled-name='I_BDEV' filepath='block/bdev.c' line='42' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='I_BDEV'>
         <parameter type-id='7e666abe' name='inode' filepath='block/bdev.c' line='42' column='1'/>
@@ -125782,8 +125999,8 @@
         <parameter type-id='95e97e5e' name='node' filepath='net/core/skbuff.c' line='398' column='1'/>
         <return type-id='0fbf3cfd'/>
       </function-decl>
-      <function-decl name='__balance_callbacks' mangled-name='__balance_callbacks' filepath='kernel/sched/core.c' line='4868' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__balance_callbacks'>
-        <parameter type-id='6ed6b432' name='rq' filepath='kernel/sched/core.c' line='4868' column='1'/>
+      <function-decl name='__balance_callbacks' mangled-name='__balance_callbacks' filepath='kernel/sched/core.c' line='4836' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__balance_callbacks'>
+        <parameter type-id='6ed6b432' name='rq' filepath='kernel/sched/core.c' line='4836' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
       <function-decl name='__bforget' mangled-name='__bforget' filepath='fs/buffer.c' line='1156' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__bforget'>
@@ -125880,10 +126097,10 @@
         <parameter type-id='a57283f9' name='lkclass' filepath='block/genhd.c' line='1333' column='1'/>
         <return type-id='33c599da'/>
       </function-decl>
-      <function-decl name='__blk_mq_alloc_disk' mangled-name='__blk_mq_alloc_disk' filepath='block/blk-mq.c' line='3147' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__blk_mq_alloc_disk'>
-        <parameter type-id='cc26d15f' name='set' filepath='block/blk-mq.c' line='3147' column='1'/>
-        <parameter type-id='eaa32e2f' name='queuedata' filepath='block/blk-mq.c' line='3147' column='1'/>
-        <parameter type-id='a57283f9' name='lkclass' filepath='block/blk-mq.c' line='3148' column='1'/>
+      <function-decl name='__blk_mq_alloc_disk' mangled-name='__blk_mq_alloc_disk' filepath='block/blk-mq.c' line='3149' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__blk_mq_alloc_disk'>
+        <parameter type-id='cc26d15f' name='set' filepath='block/blk-mq.c' line='3149' column='1'/>
+        <parameter type-id='eaa32e2f' name='queuedata' filepath='block/blk-mq.c' line='3149' column='1'/>
+        <parameter type-id='a57283f9' name='lkclass' filepath='block/blk-mq.c' line='3150' column='1'/>
         <return type-id='33c599da'/>
       </function-decl>
       <function-decl name='__blk_mq_end_request' mangled-name='__blk_mq_end_request' filepath='block/blk-mq.c' line='550' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__blk_mq_end_request'>
@@ -125891,11 +126108,11 @@
         <parameter type-id='f4e2facd' name='error' filepath='block/blk-mq.c' line='550' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='__blk_rq_map_sg' mangled-name='__blk_rq_map_sg' filepath='block/blk-merge.c' line='530' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__blk_rq_map_sg'>
-        <parameter type-id='e7d2a5fc' name='q' filepath='block/blk-merge.c' line='530' column='1'/>
-        <parameter type-id='3dad1a48' name='rq' filepath='block/blk-merge.c' line='530' column='1'/>
-        <parameter type-id='bf3ef905' name='sglist' filepath='block/blk-merge.c' line='531' column='1'/>
-        <parameter type-id='3f2244fd' name='last_sg' filepath='block/blk-merge.c' line='531' column='1'/>
+      <function-decl name='__blk_rq_map_sg' mangled-name='__blk_rq_map_sg' filepath='block/blk-merge.c' line='542' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__blk_rq_map_sg'>
+        <parameter type-id='e7d2a5fc' name='q' filepath='block/blk-merge.c' line='542' column='1'/>
+        <parameter type-id='3dad1a48' name='rq' filepath='block/blk-merge.c' line='542' column='1'/>
+        <parameter type-id='bf3ef905' name='sglist' filepath='block/blk-merge.c' line='543' column='1'/>
+        <parameter type-id='3f2244fd' name='last_sg' filepath='block/blk-merge.c' line='543' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
       <function-decl name='__blkdev_issue_discard' mangled-name='__blkdev_issue_discard' filepath='block/blk-lib.c' line='26' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__blkdev_issue_discard'>
@@ -125907,6 +126124,18 @@
         <parameter type-id='334817d1' name='biop' filepath='block/blk-lib.c' line='28' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
+      <function-decl name='__blkg_prfill_rwstat' mangled-name='__blkg_prfill_rwstat' filepath='block/blk-cgroup-rwstat.c' line='42' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__blkg_prfill_rwstat'>
+        <parameter type-id='f8dc9def' name='sf' filepath='block/blk-cgroup-rwstat.c' line='42' column='1'/>
+        <parameter type-id='3213e875' name='pd' filepath='block/blk-cgroup-rwstat.c' line='42' column='1'/>
+        <parameter type-id='0c9ab50f' name='rwstat' filepath='block/blk-cgroup-rwstat.c' line='43' column='1'/>
+        <return type-id='91ce1af9'/>
+      </function-decl>
+      <function-decl name='__blkg_prfill_u64' mangled-name='__blkg_prfill_u64' filepath='block/blk-cgroup.c' line='546' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__blkg_prfill_u64'>
+        <parameter type-id='f8dc9def' name='sf' filepath='block/blk-cgroup.c' line='546' column='1'/>
+        <parameter type-id='3213e875' name='pd' filepath='block/blk-cgroup.c' line='546' column='1'/>
+        <parameter type-id='91ce1af9' name='v' filepath='block/blk-cgroup.c' line='546' column='1'/>
+        <return type-id='91ce1af9'/>
+      </function-decl>
       <function-decl name='__blockdev_direct_IO' mangled-name='__blockdev_direct_IO' filepath='fs/direct-io.c' line='1350' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__blockdev_direct_IO'>
         <parameter type-id='80f25feb' name='iocb' filepath='fs/direct-io.c' line='1350' column='1'/>
         <parameter type-id='7e666abe' name='inode' filepath='fs/direct-io.c' line='1350' column='1'/>
@@ -126307,11 +126536,11 @@
         <parameter type-id='80f4b756' name='name' filepath='drivers/base/devres.c' line='158' column='1'/>
         <return type-id='eaa32e2f'/>
       </function-decl>
-      <function-decl name='__dma_request_channel' mangled-name='__dma_request_channel' filepath='drivers/dma/dmaengine.c' line='755' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__dma_request_channel'>
-        <parameter type-id='d2b9f7d5' name='mask' filepath='drivers/dma/dmaengine.c' line='755' column='1'/>
-        <parameter type-id='55f53546' name='fn' filepath='drivers/dma/dmaengine.c' line='756' column='1'/>
-        <parameter type-id='eaa32e2f' name='fn_param' filepath='drivers/dma/dmaengine.c' line='756' column='1'/>
-        <parameter type-id='9a537bbe' name='np' filepath='drivers/dma/dmaengine.c' line='757' column='1'/>
+      <function-decl name='__dma_request_channel' mangled-name='__dma_request_channel' filepath='drivers/dma/dmaengine.c' line='756' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__dma_request_channel'>
+        <parameter type-id='d2b9f7d5' name='mask' filepath='drivers/dma/dmaengine.c' line='756' column='1'/>
+        <parameter type-id='55f53546' name='fn' filepath='drivers/dma/dmaengine.c' line='757' column='1'/>
+        <parameter type-id='eaa32e2f' name='fn_param' filepath='drivers/dma/dmaengine.c' line='757' column='1'/>
+        <parameter type-id='9a537bbe' name='np' filepath='drivers/dma/dmaengine.c' line='758' column='1'/>
         <return type-id='27f3f5d8'/>
       </function-decl>
       <function-decl name='__do_once_done' mangled-name='__do_once_done' filepath='lib/once.c' line='60' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__do_once_done'>
@@ -126520,6 +126749,11 @@
         <parameter type-id='7359adad' name='addr' filepath='mm/mmap.c' line='2307' column='1'/>
         <return type-id='2ae08426'/>
       </function-decl>
+      <function-decl name='__free_iova' mangled-name='__free_iova' filepath='drivers/iommu/iova.c' line='544' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__free_iova'>
+        <parameter type-id='0c2c419d' name='iovad' filepath='drivers/iommu/iova.c' line='544' column='1'/>
+        <parameter type-id='b2ea0a72' name='iova' filepath='drivers/iommu/iova.c' line='544' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
       <function-decl name='__free_pages' mangled-name='__free_pages' filepath='mm/page_alloc.c' line='5639' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__free_pages'>
         <parameter type-id='02f11ed4' name='page' filepath='mm/page_alloc.c' line='5639' column='1'/>
         <parameter type-id='f0981eeb' name='order' filepath='mm/page_alloc.c' line='5639' column='1'/>
@@ -126722,10 +126956,10 @@
         <parameter type-id='2448a865' name='sdif' filepath='net/ipv4/inet_hashtables.c' line='396' column='1'/>
         <return type-id='f772df6d'/>
       </function-decl>
-      <function-decl name='__init_rwsem' mangled-name='__init_rwsem' filepath='kernel/locking/rwsem.c' line='316' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__init_rwsem'>
-        <parameter type-id='9b58df93' name='sem' filepath='kernel/locking/rwsem.c' line='316' column='1'/>
-        <parameter type-id='80f4b756' name='name' filepath='kernel/locking/rwsem.c' line='316' column='1'/>
-        <parameter type-id='a57283f9' name='key' filepath='kernel/locking/rwsem.c' line='317' column='1'/>
+      <function-decl name='__init_rwsem' mangled-name='__init_rwsem' filepath='kernel/locking/rwsem.c' line='317' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__init_rwsem'>
+        <parameter type-id='9b58df93' name='sem' filepath='kernel/locking/rwsem.c' line='317' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='kernel/locking/rwsem.c' line='317' column='1'/>
+        <parameter type-id='a57283f9' name='key' filepath='kernel/locking/rwsem.c' line='318' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
       <function-decl name='__init_swait_queue_head' mangled-name='__init_swait_queue_head' filepath='kernel/sched/swait.c' line='7' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__init_swait_queue_head'>
@@ -126947,22 +127181,22 @@
         <parameter type-id='95e97e5e' name='flags' filepath='fs/fs-writeback.c' line='2407' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='__mdiobus_read' mangled-name='__mdiobus_read' filepath='drivers/net/phy/mdio_bus.c' line='749' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__mdiobus_read'>
-        <parameter type-id='ff47b24b' name='bus' filepath='drivers/net/phy/mdio_bus.c' line='749' column='1'/>
-        <parameter type-id='95e97e5e' name='addr' filepath='drivers/net/phy/mdio_bus.c' line='749' column='1'/>
-        <parameter type-id='19c2251e' name='regnum' filepath='drivers/net/phy/mdio_bus.c' line='749' column='1'/>
+      <function-decl name='__mdiobus_read' mangled-name='__mdiobus_read' filepath='drivers/net/phy/mdio_bus.c' line='754' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__mdiobus_read'>
+        <parameter type-id='ff47b24b' name='bus' filepath='drivers/net/phy/mdio_bus.c' line='754' column='1'/>
+        <parameter type-id='95e97e5e' name='addr' filepath='drivers/net/phy/mdio_bus.c' line='754' column='1'/>
+        <parameter type-id='19c2251e' name='regnum' filepath='drivers/net/phy/mdio_bus.c' line='754' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='__mdiobus_register' mangled-name='__mdiobus_register' filepath='drivers/net/phy/mdio_bus.c' line='518' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__mdiobus_register'>
-        <parameter type-id='ff47b24b' name='bus' filepath='drivers/net/phy/mdio_bus.c' line='518' column='1'/>
-        <parameter type-id='2730d015' name='owner' filepath='drivers/net/phy/mdio_bus.c' line='518' column='1'/>
+      <function-decl name='__mdiobus_register' mangled-name='__mdiobus_register' filepath='drivers/net/phy/mdio_bus.c' line='523' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__mdiobus_register'>
+        <parameter type-id='ff47b24b' name='bus' filepath='drivers/net/phy/mdio_bus.c' line='523' column='1'/>
+        <parameter type-id='2730d015' name='owner' filepath='drivers/net/phy/mdio_bus.c' line='523' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='__mdiobus_write' mangled-name='__mdiobus_write' filepath='drivers/net/phy/mdio_bus.c' line='775' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__mdiobus_write'>
-        <parameter type-id='ff47b24b' name='bus' filepath='drivers/net/phy/mdio_bus.c' line='775' column='1'/>
-        <parameter type-id='95e97e5e' name='addr' filepath='drivers/net/phy/mdio_bus.c' line='775' column='1'/>
-        <parameter type-id='19c2251e' name='regnum' filepath='drivers/net/phy/mdio_bus.c' line='775' column='1'/>
-        <parameter type-id='1dc6a898' name='val' filepath='drivers/net/phy/mdio_bus.c' line='775' column='1'/>
+      <function-decl name='__mdiobus_write' mangled-name='__mdiobus_write' filepath='drivers/net/phy/mdio_bus.c' line='780' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__mdiobus_write'>
+        <parameter type-id='ff47b24b' name='bus' filepath='drivers/net/phy/mdio_bus.c' line='780' column='1'/>
+        <parameter type-id='95e97e5e' name='addr' filepath='drivers/net/phy/mdio_bus.c' line='780' column='1'/>
+        <parameter type-id='19c2251e' name='regnum' filepath='drivers/net/phy/mdio_bus.c' line='780' column='1'/>
+        <parameter type-id='1dc6a898' name='val' filepath='drivers/net/phy/mdio_bus.c' line='780' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
       <function-decl name='__media_device_register' mangled-name='__media_device_register' filepath='drivers/media/mc/mc-device.c' line='732' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__media_device_register'>
@@ -126998,11 +127232,11 @@
         <parameter type-id='b59d7dce' name='count' filepath='arch/arm64/kernel/io.c' line='71' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='__migrate_task' mangled-name='__migrate_task' filepath='kernel/sched/core.c' line='2350' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__migrate_task'>
-        <parameter type-id='6ed6b432' name='rq' filepath='kernel/sched/core.c' line='2350' column='1'/>
-        <parameter type-id='d0163a5e' name='rf' filepath='kernel/sched/core.c' line='2350' column='1'/>
-        <parameter type-id='f23e2572' name='p' filepath='kernel/sched/core.c' line='2351' column='1'/>
-        <parameter type-id='95e97e5e' name='dest_cpu' filepath='kernel/sched/core.c' line='2351' column='1'/>
+      <function-decl name='__migrate_task' mangled-name='__migrate_task' filepath='kernel/sched/core.c' line='2339' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__migrate_task'>
+        <parameter type-id='6ed6b432' name='rq' filepath='kernel/sched/core.c' line='2339' column='1'/>
+        <parameter type-id='d0163a5e' name='rf' filepath='kernel/sched/core.c' line='2339' column='1'/>
+        <parameter type-id='f23e2572' name='p' filepath='kernel/sched/core.c' line='2340' column='1'/>
+        <parameter type-id='95e97e5e' name='dest_cpu' filepath='kernel/sched/core.c' line='2340' column='1'/>
         <return type-id='6ed6b432'/>
       </function-decl>
       <function-decl name='__mmap_lock_do_trace_acquire_returned' mangled-name='__mmap_lock_do_trace_acquire_returned' filepath='mm/mmap_lock.c' line='234' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__mmap_lock_do_trace_acquire_returned'>
@@ -127109,39 +127343,39 @@
         <parameter type-id='6fba21a9' name='type' filepath='net/core/dev.c' line='2574' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='__netlink_kernel_create' mangled-name='__netlink_kernel_create' filepath='net/netlink/af_netlink.c' line='2049' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__netlink_kernel_create'>
-        <parameter type-id='a2bff676' name='net' filepath='net/netlink/af_netlink.c' line='2049' column='1'/>
-        <parameter type-id='95e97e5e' name='unit' filepath='net/netlink/af_netlink.c' line='2049' column='1'/>
-        <parameter type-id='2730d015' name='module' filepath='net/netlink/af_netlink.c' line='2049' column='1'/>
-        <parameter type-id='8438f281' name='cfg' filepath='net/netlink/af_netlink.c' line='2050' column='1'/>
+      <function-decl name='__netlink_kernel_create' mangled-name='__netlink_kernel_create' filepath='net/netlink/af_netlink.c' line='2059' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__netlink_kernel_create'>
+        <parameter type-id='a2bff676' name='net' filepath='net/netlink/af_netlink.c' line='2059' column='1'/>
+        <parameter type-id='95e97e5e' name='unit' filepath='net/netlink/af_netlink.c' line='2059' column='1'/>
+        <parameter type-id='2730d015' name='module' filepath='net/netlink/af_netlink.c' line='2059' column='1'/>
+        <parameter type-id='8438f281' name='cfg' filepath='net/netlink/af_netlink.c' line='2060' column='1'/>
         <return type-id='f772df6d'/>
       </function-decl>
-      <function-decl name='__nla_parse' mangled-name='__nla_parse' filepath='lib/nlattr.c' line='680' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__nla_parse'>
-        <parameter type-id='30864cdc' name='tb' filepath='lib/nlattr.c' line='680' column='1'/>
-        <parameter type-id='95e97e5e' name='maxtype' filepath='lib/nlattr.c' line='680' column='1'/>
-        <parameter type-id='0f2a7ce5' name='head' filepath='lib/nlattr.c' line='681' column='1'/>
-        <parameter type-id='95e97e5e' name='len' filepath='lib/nlattr.c' line='681' column='1'/>
-        <parameter type-id='109cdb66' name='policy' filepath='lib/nlattr.c' line='682' column='1'/>
-        <parameter type-id='f0981eeb' name='validate' filepath='lib/nlattr.c' line='682' column='1'/>
-        <parameter type-id='5799dc94' name='extack' filepath='lib/nlattr.c' line='683' column='1'/>
+      <function-decl name='__nla_parse' mangled-name='__nla_parse' filepath='lib/nlattr.c' line='683' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__nla_parse'>
+        <parameter type-id='30864cdc' name='tb' filepath='lib/nlattr.c' line='683' column='1'/>
+        <parameter type-id='95e97e5e' name='maxtype' filepath='lib/nlattr.c' line='683' column='1'/>
+        <parameter type-id='0f2a7ce5' name='head' filepath='lib/nlattr.c' line='684' column='1'/>
+        <parameter type-id='95e97e5e' name='len' filepath='lib/nlattr.c' line='684' column='1'/>
+        <parameter type-id='109cdb66' name='policy' filepath='lib/nlattr.c' line='685' column='1'/>
+        <parameter type-id='f0981eeb' name='validate' filepath='lib/nlattr.c' line='685' column='1'/>
+        <parameter type-id='5799dc94' name='extack' filepath='lib/nlattr.c' line='686' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='__nla_validate' mangled-name='__nla_validate' filepath='lib/nlattr.c' line='626' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__nla_validate'>
-        <parameter type-id='0f2a7ce5' name='head' filepath='lib/nlattr.c' line='626' column='1'/>
-        <parameter type-id='95e97e5e' name='len' filepath='lib/nlattr.c' line='626' column='1'/>
-        <parameter type-id='95e97e5e' name='maxtype' filepath='lib/nlattr.c' line='626' column='1'/>
-        <parameter type-id='109cdb66' name='policy' filepath='lib/nlattr.c' line='627' column='1'/>
-        <parameter type-id='f0981eeb' name='validate' filepath='lib/nlattr.c' line='627' column='1'/>
-        <parameter type-id='5799dc94' name='extack' filepath='lib/nlattr.c' line='628' column='1'/>
+      <function-decl name='__nla_validate' mangled-name='__nla_validate' filepath='lib/nlattr.c' line='629' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__nla_validate'>
+        <parameter type-id='0f2a7ce5' name='head' filepath='lib/nlattr.c' line='629' column='1'/>
+        <parameter type-id='95e97e5e' name='len' filepath='lib/nlattr.c' line='629' column='1'/>
+        <parameter type-id='95e97e5e' name='maxtype' filepath='lib/nlattr.c' line='629' column='1'/>
+        <parameter type-id='109cdb66' name='policy' filepath='lib/nlattr.c' line='630' column='1'/>
+        <parameter type-id='f0981eeb' name='validate' filepath='lib/nlattr.c' line='630' column='1'/>
+        <parameter type-id='5799dc94' name='extack' filepath='lib/nlattr.c' line='631' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='__nlmsg_put' mangled-name='__nlmsg_put' filepath='net/netlink/af_netlink.c' line='2189' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__nlmsg_put'>
-        <parameter type-id='0fbf3cfd' name='skb' filepath='net/netlink/af_netlink.c' line='2189' column='1'/>
-        <parameter type-id='19c2251e' name='portid' filepath='net/netlink/af_netlink.c' line='2189' column='1'/>
-        <parameter type-id='19c2251e' name='seq' filepath='net/netlink/af_netlink.c' line='2189' column='1'/>
-        <parameter type-id='95e97e5e' name='type' filepath='net/netlink/af_netlink.c' line='2189' column='1'/>
-        <parameter type-id='95e97e5e' name='len' filepath='net/netlink/af_netlink.c' line='2189' column='1'/>
-        <parameter type-id='95e97e5e' name='flags' filepath='net/netlink/af_netlink.c' line='2189' column='1'/>
+      <function-decl name='__nlmsg_put' mangled-name='__nlmsg_put' filepath='net/netlink/af_netlink.c' line='2199' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__nlmsg_put'>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/netlink/af_netlink.c' line='2199' column='1'/>
+        <parameter type-id='19c2251e' name='portid' filepath='net/netlink/af_netlink.c' line='2199' column='1'/>
+        <parameter type-id='19c2251e' name='seq' filepath='net/netlink/af_netlink.c' line='2199' column='1'/>
+        <parameter type-id='95e97e5e' name='type' filepath='net/netlink/af_netlink.c' line='2199' column='1'/>
+        <parameter type-id='95e97e5e' name='len' filepath='net/netlink/af_netlink.c' line='2199' column='1'/>
+        <parameter type-id='95e97e5e' name='flags' filepath='net/netlink/af_netlink.c' line='2199' column='1'/>
         <return type-id='c2074578'/>
       </function-decl>
       <var-decl name='__num_online_cpus' type-id='49178f86' mangled-name='__num_online_cpus' visibility='default' filepath='kernel/cpu.c' line='2695' column='1' elf-symbol-id='__num_online_cpus'/>
@@ -127162,17 +127396,17 @@
         <parameter type-id='b50a4934' name='acquired' filepath='drivers/reset/core.c' line='814' column='1'/>
         <return type-id='9f9b8114'/>
       </function-decl>
-      <function-decl name='__page_file_index' mangled-name='__page_file_index' filepath='mm/swapfile.c' line='3556' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__page_file_index'>
-        <parameter type-id='02f11ed4' name='page' filepath='mm/swapfile.c' line='3556' column='1'/>
+      <function-decl name='__page_file_index' mangled-name='__page_file_index' filepath='mm/swapfile.c' line='3557' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__page_file_index'>
+        <parameter type-id='02f11ed4' name='page' filepath='mm/swapfile.c' line='3557' column='1'/>
         <return type-id='7359adad'/>
       </function-decl>
-      <function-decl name='__page_file_mapping' mangled-name='__page_file_mapping' filepath='mm/swapfile.c' line='3550' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__page_file_mapping'>
-        <parameter type-id='02f11ed4' name='page' filepath='mm/swapfile.c' line='3550' column='1'/>
+      <function-decl name='__page_file_mapping' mangled-name='__page_file_mapping' filepath='mm/swapfile.c' line='3551' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__page_file_mapping'>
+        <parameter type-id='02f11ed4' name='page' filepath='mm/swapfile.c' line='3551' column='1'/>
         <return type-id='f57039f0'/>
       </function-decl>
-      <function-decl name='__page_frag_cache_drain' mangled-name='__page_frag_cache_drain' filepath='mm/page_alloc.c' line='5691' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__page_frag_cache_drain'>
-        <parameter type-id='02f11ed4' name='page' filepath='mm/page_alloc.c' line='5691' column='1'/>
-        <parameter type-id='f0981eeb' name='count' filepath='mm/page_alloc.c' line='5691' column='1'/>
+      <function-decl name='__page_frag_cache_drain' mangled-name='__page_frag_cache_drain' filepath='mm/page_alloc.c' line='5694' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__page_frag_cache_drain'>
+        <parameter type-id='02f11ed4' name='page' filepath='mm/page_alloc.c' line='5694' column='1'/>
+        <parameter type-id='f0981eeb' name='count' filepath='mm/page_alloc.c' line='5694' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
       <function-decl name='__page_mapcount' mangled-name='__page_mapcount' filepath='mm/util.c' line='822' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__page_mapcount'>
@@ -127452,12 +127686,12 @@
         <parameter type-id='75396bad' name='sbq' filepath='lib/sbitmap.c' line='486' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='__scsi_add_device' mangled-name='__scsi_add_device' filepath='drivers/scsi/scsi_scan.c' line='1536' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__scsi_add_device'>
-        <parameter type-id='a970a64c' name='shost' filepath='drivers/scsi/scsi_scan.c' line='1536' column='1'/>
-        <parameter type-id='6e160b14' name='channel' filepath='drivers/scsi/scsi_scan.c' line='1536' column='1'/>
-        <parameter type-id='6e160b14' name='id' filepath='drivers/scsi/scsi_scan.c' line='1537' column='1'/>
-        <parameter type-id='91ce1af9' name='lun' filepath='drivers/scsi/scsi_scan.c' line='1537' column='1'/>
-        <parameter type-id='eaa32e2f' name='hostdata' filepath='drivers/scsi/scsi_scan.c' line='1537' column='1'/>
+      <function-decl name='__scsi_add_device' mangled-name='__scsi_add_device' filepath='drivers/scsi/scsi_scan.c' line='1535' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__scsi_add_device'>
+        <parameter type-id='a970a64c' name='shost' filepath='drivers/scsi/scsi_scan.c' line='1535' column='1'/>
+        <parameter type-id='6e160b14' name='channel' filepath='drivers/scsi/scsi_scan.c' line='1535' column='1'/>
+        <parameter type-id='6e160b14' name='id' filepath='drivers/scsi/scsi_scan.c' line='1536' column='1'/>
+        <parameter type-id='91ce1af9' name='lun' filepath='drivers/scsi/scsi_scan.c' line='1536' column='1'/>
+        <parameter type-id='eaa32e2f' name='hostdata' filepath='drivers/scsi/scsi_scan.c' line='1536' column='1'/>
         <return type-id='eb572b74'/>
       </function-decl>
       <function-decl name='__scsi_execute' mangled-name='__scsi_execute' filepath='drivers/scsi/scsi_lib.c' line='208' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__scsi_execute'>
@@ -127548,8 +127782,8 @@
         <parameter type-id='0fbf3cfd' name='skb' filepath='net/core/skbuff.c' line='3068' column='1'/>
         <return type-id='7dac1e36'/>
       </function-decl>
-      <function-decl name='__skb_ext_put' mangled-name='__skb_ext_put' filepath='net/core/skbuff.c' line='6603' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__skb_ext_put'>
-        <parameter type-id='374692c7' name='ext' filepath='net/core/skbuff.c' line='6603' column='1'/>
+      <function-decl name='__skb_ext_put' mangled-name='__skb_ext_put' filepath='net/core/skbuff.c' line='6602' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__skb_ext_put'>
+        <parameter type-id='374692c7' name='ext' filepath='net/core/skbuff.c' line='6602' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
       <function-decl name='__skb_flow_dissect' mangled-name='__skb_flow_dissect' filepath='net/core/flow_dissector.c' line='915' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__skb_flow_dissect'>
@@ -127620,7 +127854,7 @@
         <parameter type-id='95e97e5e' name='idx' filepath='kernel/rcu/srcutree.c' line='416' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='__stack_chk_fail' mangled-name='__stack_chk_fail' filepath='kernel/panic.c' line='682' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__stack_chk_fail'>
+      <function-decl name='__stack_chk_fail' mangled-name='__stack_chk_fail' filepath='kernel/panic.c' line='750' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__stack_chk_fail'>
         <return type-id='48b5725f'/>
       </function-decl>
       <function-decl name='__sw_hweight16' mangled-name='__sw_hweight16' filepath='lib/hweight.c' line='30' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__sw_hweight16'>
@@ -127664,9 +127898,9 @@
         <parameter type-id='b816e1d0' name='ns' filepath='kernel/pid.c' line='494' column='1'/>
         <return type-id='587f89d2'/>
       </function-decl>
-      <function-decl name='__task_rq_lock' mangled-name='__task_rq_lock' filepath='kernel/sched/core.c' line='564' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__task_rq_lock'>
-        <parameter type-id='f23e2572' name='p' filepath='kernel/sched/core.c' line='564' column='1'/>
-        <parameter type-id='d0163a5e' name='rf' filepath='kernel/sched/core.c' line='564' column='1'/>
+      <function-decl name='__task_rq_lock' mangled-name='__task_rq_lock' filepath='kernel/sched/core.c' line='561' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__task_rq_lock'>
+        <parameter type-id='f23e2572' name='p' filepath='kernel/sched/core.c' line='561' column='1'/>
+        <parameter type-id='d0163a5e' name='rf' filepath='kernel/sched/core.c' line='561' column='1'/>
         <return type-id='6ed6b432'/>
       </function-decl>
       <function-decl name='__tasklet_hi_schedule' mangled-name='__tasklet_hi_schedule' filepath='kernel/softirq.c' line='752' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__tasklet_hi_schedule'>
@@ -128594,12 +128828,12 @@
         <parameter type-id='d8e6b335' name='already_on_hb' filepath='include/trace/hooks/futex.h' line='24' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='__traceiter_android_vh_alter_mutex_list_add' mangled-name='__traceiter_android_vh_alter_mutex_list_add' filepath='include/trace/hooks/dtask.h' line='61' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_alter_mutex_list_add'>
-        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/dtask.h' line='61' column='1'/>
-        <parameter type-id='e0ea832a' name='lock' filepath='include/trace/hooks/dtask.h' line='61' column='1'/>
-        <parameter type-id='3ca21ae3' name='waiter' filepath='include/trace/hooks/dtask.h' line='61' column='1'/>
-        <parameter type-id='e84b031a' name='list' filepath='include/trace/hooks/dtask.h' line='61' column='1'/>
-        <parameter type-id='d8e6b335' name='already_on_list' filepath='include/trace/hooks/dtask.h' line='61' column='1'/>
+      <function-decl name='__traceiter_android_vh_alter_mutex_list_add' mangled-name='__traceiter_android_vh_alter_mutex_list_add' filepath='include/trace/hooks/dtask.h' line='79' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_alter_mutex_list_add'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/dtask.h' line='79' column='1'/>
+        <parameter type-id='e0ea832a' name='lock' filepath='include/trace/hooks/dtask.h' line='79' column='1'/>
+        <parameter type-id='3ca21ae3' name='waiter' filepath='include/trace/hooks/dtask.h' line='79' column='1'/>
+        <parameter type-id='e84b031a' name='list' filepath='include/trace/hooks/dtask.h' line='79' column='1'/>
+        <parameter type-id='d8e6b335' name='already_on_list' filepath='include/trace/hooks/dtask.h' line='79' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
       <function-decl name='__traceiter_android_vh_alter_rwsem_list_add' mangled-name='__traceiter_android_vh_alter_rwsem_list_add' filepath='include/trace/hooks/rwsem.h' line='29' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_alter_rwsem_list_add'>
@@ -128649,56 +128883,56 @@
         <parameter type-id='d8e6b335' name='need_ignore' filepath='include/trace/hooks/audio_usboffload.h' line='30' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='__traceiter_android_vh_binder_alloc_new_buf_locked' mangled-name='__traceiter_android_vh_binder_alloc_new_buf_locked' filepath='include/trace/hooks/binder.h' line='86' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_binder_alloc_new_buf_locked'>
-        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/binder.h' line='86' column='1'/>
-        <parameter type-id='b59d7dce' name='size' filepath='include/trace/hooks/binder.h' line='86' column='1'/>
-        <parameter type-id='78c01427' name='free_async_space' filepath='include/trace/hooks/binder.h' line='86' column='1'/>
-        <parameter type-id='95e97e5e' name='is_async' filepath='include/trace/hooks/binder.h' line='86' column='1'/>
+      <function-decl name='__traceiter_android_vh_binder_alloc_new_buf_locked' mangled-name='__traceiter_android_vh_binder_alloc_new_buf_locked' filepath='include/trace/hooks/binder.h' line='82' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_binder_alloc_new_buf_locked'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/binder.h' line='82' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='include/trace/hooks/binder.h' line='82' column='1'/>
+        <parameter type-id='78c01427' name='free_async_space' filepath='include/trace/hooks/binder.h' line='82' column='1'/>
+        <parameter type-id='95e97e5e' name='is_async' filepath='include/trace/hooks/binder.h' line='82' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='__traceiter_android_vh_binder_del_ref' mangled-name='__traceiter_android_vh_binder_del_ref' filepath='include/trace/hooks/binder.h' line='108' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_binder_del_ref'>
-        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/binder.h' line='108' column='1'/>
-        <parameter type-id='f23e2572' name='proc' filepath='include/trace/hooks/binder.h' line='108' column='1'/>
-        <parameter type-id='8f92235e' name='ref_desc' filepath='include/trace/hooks/binder.h' line='108' column='1'/>
+      <function-decl name='__traceiter_android_vh_binder_del_ref' mangled-name='__traceiter_android_vh_binder_del_ref' filepath='include/trace/hooks/binder.h' line='104' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_binder_del_ref'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/binder.h' line='104' column='1'/>
+        <parameter type-id='f23e2572' name='proc' filepath='include/trace/hooks/binder.h' line='104' column='1'/>
+        <parameter type-id='8f92235e' name='ref_desc' filepath='include/trace/hooks/binder.h' line='104' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='__traceiter_android_vh_binder_free_proc' mangled-name='__traceiter_android_vh_binder_free_proc' filepath='include/trace/hooks/binder.h' line='74' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_binder_free_proc'>
-        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/binder.h' line='74' column='1'/>
-        <parameter type-id='d1cf113c' name='proc' filepath='include/trace/hooks/binder.h' line='74' column='1'/>
+      <function-decl name='__traceiter_android_vh_binder_free_proc' mangled-name='__traceiter_android_vh_binder_free_proc' filepath='include/trace/hooks/binder.h' line='70' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_binder_free_proc'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/binder.h' line='70' column='1'/>
+        <parameter type-id='d1cf113c' name='proc' filepath='include/trace/hooks/binder.h' line='70' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='__traceiter_android_vh_binder_has_work_ilocked' mangled-name='__traceiter_android_vh_binder_has_work_ilocked' filepath='include/trace/hooks/binder.h' line='83' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_binder_has_work_ilocked'>
-        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/binder.h' line='83' column='1'/>
-        <parameter type-id='dd695fa4' name='thread' filepath='include/trace/hooks/binder.h' line='83' column='1'/>
-        <parameter type-id='b50a4934' name='do_proc_work' filepath='include/trace/hooks/binder.h' line='83' column='1'/>
-        <parameter type-id='7292109c' name='ret' filepath='include/trace/hooks/binder.h' line='83' column='1'/>
+      <function-decl name='__traceiter_android_vh_binder_has_work_ilocked' mangled-name='__traceiter_android_vh_binder_has_work_ilocked' filepath='include/trace/hooks/binder.h' line='79' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_binder_has_work_ilocked'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/binder.h' line='79' column='1'/>
+        <parameter type-id='dd695fa4' name='thread' filepath='include/trace/hooks/binder.h' line='79' column='1'/>
+        <parameter type-id='b50a4934' name='do_proc_work' filepath='include/trace/hooks/binder.h' line='79' column='1'/>
+        <parameter type-id='7292109c' name='ret' filepath='include/trace/hooks/binder.h' line='79' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='__traceiter_android_vh_binder_looper_state_registered' mangled-name='__traceiter_android_vh_binder_looper_state_registered' filepath='include/trace/hooks/binder.h' line='67' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_binder_looper_state_registered'>
-        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/binder.h' line='67' column='1'/>
-        <parameter type-id='dd695fa4' name='thread' filepath='include/trace/hooks/binder.h' line='67' column='1'/>
-        <parameter type-id='d1cf113c' name='proc' filepath='include/trace/hooks/binder.h' line='67' column='1'/>
-        <return type-id='95e97e5e'/>
-      </function-decl>
-      <function-decl name='__traceiter_android_vh_binder_new_ref' mangled-name='__traceiter_android_vh_binder_new_ref' filepath='include/trace/hooks/binder.h' line='105' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_binder_new_ref'>
-        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/binder.h' line='105' column='1'/>
-        <parameter type-id='f23e2572' name='proc' filepath='include/trace/hooks/binder.h' line='105' column='1'/>
-        <parameter type-id='8f92235e' name='ref_desc' filepath='include/trace/hooks/binder.h' line='105' column='1'/>
-        <parameter type-id='95e97e5e' name='node_debug_id' filepath='include/trace/hooks/binder.h' line='105' column='1'/>
-        <return type-id='95e97e5e'/>
-      </function-decl>
-      <function-decl name='__traceiter_android_vh_binder_preset' mangled-name='__traceiter_android_vh_binder_preset' filepath='include/trace/hooks/binder.h' line='97' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_binder_preset'>
-        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/binder.h' line='97' column='1'/>
-        <parameter type-id='030d0b18' name='hhead' filepath='include/trace/hooks/binder.h' line='97' column='1'/>
-        <parameter type-id='e0ea832a' name='lock' filepath='include/trace/hooks/binder.h' line='97' column='1'/>
-        <return type-id='95e97e5e'/>
-      </function-decl>
-      <function-decl name='__traceiter_android_vh_binder_print_transaction_info' mangled-name='__traceiter_android_vh_binder_print_transaction_info' filepath='include/trace/hooks/binder.h' line='63' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_binder_print_transaction_info'>
+      <function-decl name='__traceiter_android_vh_binder_looper_state_registered' mangled-name='__traceiter_android_vh_binder_looper_state_registered' filepath='include/trace/hooks/binder.h' line='63' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_binder_looper_state_registered'>
         <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/binder.h' line='63' column='1'/>
-        <parameter type-id='f8dc9def' name='m' filepath='include/trace/hooks/binder.h' line='63' column='1'/>
+        <parameter type-id='dd695fa4' name='thread' filepath='include/trace/hooks/binder.h' line='63' column='1'/>
         <parameter type-id='d1cf113c' name='proc' filepath='include/trace/hooks/binder.h' line='63' column='1'/>
-        <parameter type-id='80f4b756' name='prefix' filepath='include/trace/hooks/binder.h' line='63' column='1'/>
-        <parameter type-id='f4c3bb4c' name='t' filepath='include/trace/hooks/binder.h' line='63' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_binder_new_ref' mangled-name='__traceiter_android_vh_binder_new_ref' filepath='include/trace/hooks/binder.h' line='101' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_binder_new_ref'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/binder.h' line='101' column='1'/>
+        <parameter type-id='f23e2572' name='proc' filepath='include/trace/hooks/binder.h' line='101' column='1'/>
+        <parameter type-id='8f92235e' name='ref_desc' filepath='include/trace/hooks/binder.h' line='101' column='1'/>
+        <parameter type-id='95e97e5e' name='node_debug_id' filepath='include/trace/hooks/binder.h' line='101' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_binder_preset' mangled-name='__traceiter_android_vh_binder_preset' filepath='include/trace/hooks/binder.h' line='93' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_binder_preset'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/binder.h' line='93' column='1'/>
+        <parameter type-id='030d0b18' name='hhead' filepath='include/trace/hooks/binder.h' line='93' column='1'/>
+        <parameter type-id='e0ea832a' name='lock' filepath='include/trace/hooks/binder.h' line='93' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_binder_print_transaction_info' mangled-name='__traceiter_android_vh_binder_print_transaction_info' filepath='include/trace/hooks/binder.h' line='59' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_binder_print_transaction_info'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/binder.h' line='59' column='1'/>
+        <parameter type-id='f8dc9def' name='m' filepath='include/trace/hooks/binder.h' line='59' column='1'/>
+        <parameter type-id='d1cf113c' name='proc' filepath='include/trace/hooks/binder.h' line='59' column='1'/>
+        <parameter type-id='80f4b756' name='prefix' filepath='include/trace/hooks/binder.h' line='59' column='1'/>
+        <parameter type-id='f4c3bb4c' name='t' filepath='include/trace/hooks/binder.h' line='59' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
       <function-decl name='__traceiter_android_vh_binder_priority_skip' mangled-name='__traceiter_android_vh_binder_priority_skip' filepath='include/trace/hooks/binder.h' line='28' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_binder_priority_skip'>
@@ -128707,48 +128941,48 @@
         <parameter type-id='d8e6b335' name='skip' filepath='include/trace/hooks/binder.h' line='28' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='__traceiter_android_vh_binder_proc_transaction' mangled-name='__traceiter_android_vh_binder_proc_transaction' filepath='include/trace/hooks/binder.h' line='100' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_binder_proc_transaction'>
-        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/binder.h' line='100' column='1'/>
-        <parameter type-id='f23e2572' name='caller_task' filepath='include/trace/hooks/binder.h' line='100' column='1'/>
-        <parameter type-id='f23e2572' name='binder_proc_task' filepath='include/trace/hooks/binder.h' line='100' column='1'/>
-        <parameter type-id='f23e2572' name='binder_th_task' filepath='include/trace/hooks/binder.h' line='100' column='1'/>
-        <parameter type-id='95e97e5e' name='node_debug_id' filepath='include/trace/hooks/binder.h' line='100' column='1'/>
-        <parameter type-id='f0981eeb' name='code' filepath='include/trace/hooks/binder.h' line='100' column='1'/>
-        <parameter type-id='b50a4934' name='pending_async' filepath='include/trace/hooks/binder.h' line='100' column='1'/>
+      <function-decl name='__traceiter_android_vh_binder_proc_transaction' mangled-name='__traceiter_android_vh_binder_proc_transaction' filepath='include/trace/hooks/binder.h' line='96' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_binder_proc_transaction'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/binder.h' line='96' column='1'/>
+        <parameter type-id='f23e2572' name='caller_task' filepath='include/trace/hooks/binder.h' line='96' column='1'/>
+        <parameter type-id='f23e2572' name='binder_proc_task' filepath='include/trace/hooks/binder.h' line='96' column='1'/>
+        <parameter type-id='f23e2572' name='binder_th_task' filepath='include/trace/hooks/binder.h' line='96' column='1'/>
+        <parameter type-id='95e97e5e' name='node_debug_id' filepath='include/trace/hooks/binder.h' line='96' column='1'/>
+        <parameter type-id='f0981eeb' name='code' filepath='include/trace/hooks/binder.h' line='96' column='1'/>
+        <parameter type-id='b50a4934' name='pending_async' filepath='include/trace/hooks/binder.h' line='96' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='__traceiter_android_vh_binder_proc_transaction_entry' mangled-name='__traceiter_android_vh_binder_proc_transaction_entry' filepath='include/trace/hooks/binder.h' line='50' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_binder_proc_transaction_entry'>
-        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/binder.h' line='50' column='1'/>
-        <parameter type-id='d1cf113c' name='proc' filepath='include/trace/hooks/binder.h' line='50' column='1'/>
-        <parameter type-id='f4c3bb4c' name='t' filepath='include/trace/hooks/binder.h' line='50' column='1'/>
-        <parameter type-id='1ae16c8a' name='thread' filepath='include/trace/hooks/binder.h' line='50' column='1'/>
-        <parameter type-id='95e97e5e' name='node_debug_id' filepath='include/trace/hooks/binder.h' line='50' column='1'/>
-        <parameter type-id='b50a4934' name='pending_async' filepath='include/trace/hooks/binder.h' line='50' column='1'/>
-        <parameter type-id='b50a4934' name='sync' filepath='include/trace/hooks/binder.h' line='50' column='1'/>
-        <parameter type-id='d8e6b335' name='skip' filepath='include/trace/hooks/binder.h' line='50' column='1'/>
+      <function-decl name='__traceiter_android_vh_binder_proc_transaction_entry' mangled-name='__traceiter_android_vh_binder_proc_transaction_entry' filepath='include/trace/hooks/binder.h' line='46' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_binder_proc_transaction_entry'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/binder.h' line='46' column='1'/>
+        <parameter type-id='d1cf113c' name='proc' filepath='include/trace/hooks/binder.h' line='46' column='1'/>
+        <parameter type-id='f4c3bb4c' name='t' filepath='include/trace/hooks/binder.h' line='46' column='1'/>
+        <parameter type-id='1ae16c8a' name='thread' filepath='include/trace/hooks/binder.h' line='46' column='1'/>
+        <parameter type-id='95e97e5e' name='node_debug_id' filepath='include/trace/hooks/binder.h' line='46' column='1'/>
+        <parameter type-id='b50a4934' name='pending_async' filepath='include/trace/hooks/binder.h' line='46' column='1'/>
+        <parameter type-id='b50a4934' name='sync' filepath='include/trace/hooks/binder.h' line='46' column='1'/>
+        <parameter type-id='d8e6b335' name='skip' filepath='include/trace/hooks/binder.h' line='46' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='__traceiter_android_vh_binder_proc_transaction_finish' mangled-name='__traceiter_android_vh_binder_proc_transaction_finish' filepath='include/trace/hooks/binder.h' line='59' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_binder_proc_transaction_finish'>
-        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/binder.h' line='59' column='1'/>
-        <parameter type-id='d1cf113c' name='proc' filepath='include/trace/hooks/binder.h' line='59' column='1'/>
-        <parameter type-id='f4c3bb4c' name='t' filepath='include/trace/hooks/binder.h' line='59' column='1'/>
-        <parameter type-id='f23e2572' name='binder_th_task' filepath='include/trace/hooks/binder.h' line='59' column='1'/>
-        <parameter type-id='b50a4934' name='pending_async' filepath='include/trace/hooks/binder.h' line='59' column='1'/>
-        <parameter type-id='b50a4934' name='sync' filepath='include/trace/hooks/binder.h' line='59' column='1'/>
+      <function-decl name='__traceiter_android_vh_binder_proc_transaction_finish' mangled-name='__traceiter_android_vh_binder_proc_transaction_finish' filepath='include/trace/hooks/binder.h' line='55' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_binder_proc_transaction_finish'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/binder.h' line='55' column='1'/>
+        <parameter type-id='d1cf113c' name='proc' filepath='include/trace/hooks/binder.h' line='55' column='1'/>
+        <parameter type-id='f4c3bb4c' name='t' filepath='include/trace/hooks/binder.h' line='55' column='1'/>
+        <parameter type-id='f23e2572' name='binder_th_task' filepath='include/trace/hooks/binder.h' line='55' column='1'/>
+        <parameter type-id='b50a4934' name='pending_async' filepath='include/trace/hooks/binder.h' line='55' column='1'/>
+        <parameter type-id='b50a4934' name='sync' filepath='include/trace/hooks/binder.h' line='55' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='__traceiter_android_vh_binder_read_done' mangled-name='__traceiter_android_vh_binder_read_done' filepath='include/trace/hooks/binder.h' line='80' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_binder_read_done'>
-        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/binder.h' line='80' column='1'/>
-        <parameter type-id='d1cf113c' name='proc' filepath='include/trace/hooks/binder.h' line='80' column='1'/>
-        <parameter type-id='dd695fa4' name='thread' filepath='include/trace/hooks/binder.h' line='80' column='1'/>
+      <function-decl name='__traceiter_android_vh_binder_read_done' mangled-name='__traceiter_android_vh_binder_read_done' filepath='include/trace/hooks/binder.h' line='76' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_binder_read_done'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/binder.h' line='76' column='1'/>
+        <parameter type-id='d1cf113c' name='proc' filepath='include/trace/hooks/binder.h' line='76' column='1'/>
+        <parameter type-id='dd695fa4' name='thread' filepath='include/trace/hooks/binder.h' line='76' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='__traceiter_android_vh_binder_reply' mangled-name='__traceiter_android_vh_binder_reply' filepath='include/trace/hooks/binder.h' line='89' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_binder_reply'>
-        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/binder.h' line='89' column='1'/>
-        <parameter type-id='d1cf113c' name='target_proc' filepath='include/trace/hooks/binder.h' line='89' column='1'/>
-        <parameter type-id='d1cf113c' name='proc' filepath='include/trace/hooks/binder.h' line='89' column='1'/>
-        <parameter type-id='dd695fa4' name='thread' filepath='include/trace/hooks/binder.h' line='89' column='1'/>
-        <parameter type-id='55866c73' name='tr' filepath='include/trace/hooks/binder.h' line='89' column='1'/>
+      <function-decl name='__traceiter_android_vh_binder_reply' mangled-name='__traceiter_android_vh_binder_reply' filepath='include/trace/hooks/binder.h' line='85' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_binder_reply'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/binder.h' line='85' column='1'/>
+        <parameter type-id='d1cf113c' name='target_proc' filepath='include/trace/hooks/binder.h' line='85' column='1'/>
+        <parameter type-id='d1cf113c' name='proc' filepath='include/trace/hooks/binder.h' line='85' column='1'/>
+        <parameter type-id='dd695fa4' name='thread' filepath='include/trace/hooks/binder.h' line='85' column='1'/>
+        <parameter type-id='55866c73' name='tr' filepath='include/trace/hooks/binder.h' line='85' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
       <function-decl name='__traceiter_android_vh_binder_restore_priority' mangled-name='__traceiter_android_vh_binder_restore_priority' filepath='include/trace/hooks/binder.h' line='34' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_binder_restore_priority'>
@@ -128757,12 +128991,12 @@
         <parameter type-id='f23e2572' name='task' filepath='include/trace/hooks/binder.h' line='34' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='__traceiter_android_vh_binder_select_worklist_ilocked' mangled-name='__traceiter_android_vh_binder_select_worklist_ilocked' filepath='include/trace/hooks/binder.h' line='55' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_binder_select_worklist_ilocked'>
-        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/binder.h' line='55' column='1'/>
-        <parameter type-id='de160490' name='list' filepath='include/trace/hooks/binder.h' line='55' column='1'/>
-        <parameter type-id='dd695fa4' name='thread' filepath='include/trace/hooks/binder.h' line='55' column='1'/>
-        <parameter type-id='d1cf113c' name='proc' filepath='include/trace/hooks/binder.h' line='55' column='1'/>
-        <parameter type-id='95e97e5e' name='wait_for_proc_work' filepath='include/trace/hooks/binder.h' line='55' column='1'/>
+      <function-decl name='__traceiter_android_vh_binder_select_worklist_ilocked' mangled-name='__traceiter_android_vh_binder_select_worklist_ilocked' filepath='include/trace/hooks/binder.h' line='51' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_binder_select_worklist_ilocked'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/binder.h' line='51' column='1'/>
+        <parameter type-id='de160490' name='list' filepath='include/trace/hooks/binder.h' line='51' column='1'/>
+        <parameter type-id='dd695fa4' name='thread' filepath='include/trace/hooks/binder.h' line='51' column='1'/>
+        <parameter type-id='d1cf113c' name='proc' filepath='include/trace/hooks/binder.h' line='51' column='1'/>
+        <parameter type-id='95e97e5e' name='wait_for_proc_work' filepath='include/trace/hooks/binder.h' line='51' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
       <function-decl name='__traceiter_android_vh_binder_set_priority' mangled-name='__traceiter_android_vh_binder_set_priority' filepath='include/trace/hooks/binder.h' line='31' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_binder_set_priority'>
@@ -128771,25 +129005,25 @@
         <parameter type-id='f23e2572' name='task' filepath='include/trace/hooks/binder.h' line='31' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='__traceiter_android_vh_binder_thread_read' mangled-name='__traceiter_android_vh_binder_thread_read' filepath='include/trace/hooks/binder.h' line='70' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_binder_thread_read'>
-        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/binder.h' line='70' column='1'/>
-        <parameter type-id='de160490' name='list' filepath='include/trace/hooks/binder.h' line='70' column='1'/>
-        <parameter type-id='d1cf113c' name='proc' filepath='include/trace/hooks/binder.h' line='70' column='1'/>
-        <parameter type-id='dd695fa4' name='thread' filepath='include/trace/hooks/binder.h' line='70' column='1'/>
+      <function-decl name='__traceiter_android_vh_binder_thread_read' mangled-name='__traceiter_android_vh_binder_thread_read' filepath='include/trace/hooks/binder.h' line='66' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_binder_thread_read'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/binder.h' line='66' column='1'/>
+        <parameter type-id='de160490' name='list' filepath='include/trace/hooks/binder.h' line='66' column='1'/>
+        <parameter type-id='d1cf113c' name='proc' filepath='include/trace/hooks/binder.h' line='66' column='1'/>
+        <parameter type-id='dd695fa4' name='thread' filepath='include/trace/hooks/binder.h' line='66' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='__traceiter_android_vh_binder_thread_release' mangled-name='__traceiter_android_vh_binder_thread_release' filepath='include/trace/hooks/binder.h' line='77' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_binder_thread_release'>
-        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/binder.h' line='77' column='1'/>
-        <parameter type-id='d1cf113c' name='proc' filepath='include/trace/hooks/binder.h' line='77' column='1'/>
-        <parameter type-id='dd695fa4' name='thread' filepath='include/trace/hooks/binder.h' line='77' column='1'/>
+      <function-decl name='__traceiter_android_vh_binder_thread_release' mangled-name='__traceiter_android_vh_binder_thread_release' filepath='include/trace/hooks/binder.h' line='73' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_binder_thread_release'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/binder.h' line='73' column='1'/>
+        <parameter type-id='d1cf113c' name='proc' filepath='include/trace/hooks/binder.h' line='73' column='1'/>
+        <parameter type-id='dd695fa4' name='thread' filepath='include/trace/hooks/binder.h' line='73' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='__traceiter_android_vh_binder_trans' mangled-name='__traceiter_android_vh_binder_trans' filepath='include/trace/hooks/binder.h' line='93' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_binder_trans'>
-        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/binder.h' line='93' column='1'/>
-        <parameter type-id='d1cf113c' name='target_proc' filepath='include/trace/hooks/binder.h' line='93' column='1'/>
-        <parameter type-id='d1cf113c' name='proc' filepath='include/trace/hooks/binder.h' line='93' column='1'/>
-        <parameter type-id='dd695fa4' name='thread' filepath='include/trace/hooks/binder.h' line='93' column='1'/>
-        <parameter type-id='55866c73' name='tr' filepath='include/trace/hooks/binder.h' line='93' column='1'/>
+      <function-decl name='__traceiter_android_vh_binder_trans' mangled-name='__traceiter_android_vh_binder_trans' filepath='include/trace/hooks/binder.h' line='89' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_binder_trans'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/binder.h' line='89' column='1'/>
+        <parameter type-id='d1cf113c' name='target_proc' filepath='include/trace/hooks/binder.h' line='89' column='1'/>
+        <parameter type-id='d1cf113c' name='proc' filepath='include/trace/hooks/binder.h' line='89' column='1'/>
+        <parameter type-id='dd695fa4' name='thread' filepath='include/trace/hooks/binder.h' line='89' column='1'/>
+        <parameter type-id='55866c73' name='tr' filepath='include/trace/hooks/binder.h' line='89' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
       <function-decl name='__traceiter_android_vh_binder_transaction_init' mangled-name='__traceiter_android_vh_binder_transaction_init' filepath='include/trace/hooks/binder.h' line='25' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_binder_transaction_init'>
@@ -128972,10 +129206,10 @@
         <parameter type-id='fb55efa1' name='bio' filepath='include/trace/hooks/direct_io.h' line='14' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='__traceiter_android_vh_disable_thermal_cooling_stats' mangled-name='__traceiter_android_vh_disable_thermal_cooling_stats' filepath='include/trace/hooks/thermal.h' line='49' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_disable_thermal_cooling_stats'>
-        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/thermal.h' line='49' column='1'/>
-        <parameter type-id='2feec21f' name='cdev' filepath='include/trace/hooks/thermal.h' line='49' column='1'/>
-        <parameter type-id='7292109c' name='disable_stats' filepath='include/trace/hooks/thermal.h' line='49' column='1'/>
+      <function-decl name='__traceiter_android_vh_disable_thermal_cooling_stats' mangled-name='__traceiter_android_vh_disable_thermal_cooling_stats' filepath='include/trace/hooks/thermal.h' line='53' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_disable_thermal_cooling_stats'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/thermal.h' line='53' column='1'/>
+        <parameter type-id='2feec21f' name='cdev' filepath='include/trace/hooks/thermal.h' line='53' column='1'/>
+        <parameter type-id='7292109c' name='disable_stats' filepath='include/trace/hooks/thermal.h' line='53' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
       <function-decl name='__traceiter_android_vh_dm_update_clone_bio' mangled-name='__traceiter_android_vh_dm_update_clone_bio' filepath='include/trace/hooks/dm.h' line='14' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_dm_update_clone_bio'>
@@ -129175,9 +129409,9 @@
         <parameter type-id='95e97e5e' name='target_nr' filepath='include/trace/hooks/futex.h' line='60' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='__traceiter_android_vh_get_thermal_zone_device' mangled-name='__traceiter_android_vh_get_thermal_zone_device' filepath='include/trace/hooks/thermal.h' line='45' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_get_thermal_zone_device'>
-        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/thermal.h' line='45' column='1'/>
-        <parameter type-id='404b1300' name='tz' filepath='include/trace/hooks/thermal.h' line='45' column='1'/>
+      <function-decl name='__traceiter_android_vh_get_thermal_zone_device' mangled-name='__traceiter_android_vh_get_thermal_zone_device' filepath='include/trace/hooks/thermal.h' line='49' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_get_thermal_zone_device'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/thermal.h' line='49' column='1'/>
+        <parameter type-id='404b1300' name='tz' filepath='include/trace/hooks/thermal.h' line='49' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
       <function-decl name='__traceiter_android_vh_gic_resume' mangled-name='__traceiter_android_vh_gic_resume' filepath='include/trace/hooks/gic_v3.h' line='32' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_gic_resume'>
@@ -129431,10 +129665,10 @@
         <parameter type-id='df4b7819' name='mm' filepath='include/trace/hooks/sched.h' line='431' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='__traceiter_android_vh_modify_thermal_cpu_get_power' mangled-name='__traceiter_android_vh_modify_thermal_cpu_get_power' filepath='include/trace/hooks/thermal.h' line='53' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_modify_thermal_cpu_get_power'>
-        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/thermal.h' line='53' column='1'/>
-        <parameter type-id='343c3ae4' name='policy' filepath='include/trace/hooks/thermal.h' line='53' column='1'/>
-        <parameter type-id='f9409001' name='power' filepath='include/trace/hooks/thermal.h' line='53' column='1'/>
+      <function-decl name='__traceiter_android_vh_modify_thermal_cpu_get_power' mangled-name='__traceiter_android_vh_modify_thermal_cpu_get_power' filepath='include/trace/hooks/thermal.h' line='57' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_modify_thermal_cpu_get_power'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/thermal.h' line='57' column='1'/>
+        <parameter type-id='343c3ae4' name='policy' filepath='include/trace/hooks/thermal.h' line='57' column='1'/>
+        <parameter type-id='f9409001' name='power' filepath='include/trace/hooks/thermal.h' line='57' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
       <function-decl name='__traceiter_android_vh_modify_thermal_request_freq' mangled-name='__traceiter_android_vh_modify_thermal_request_freq' filepath='include/trace/hooks/thermal.h' line='21' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_modify_thermal_request_freq'>
@@ -129449,14 +129683,45 @@
         <parameter type-id='807869d3' name='target_freq' filepath='include/trace/hooks/thermal.h' line='25' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
+      <function-decl name='__traceiter_android_vh_modify_thermal_throttle_update' mangled-name='__traceiter_android_vh_modify_thermal_throttle_update' filepath='include/trace/hooks/thermal.h' line='41' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_modify_thermal_throttle_update'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/thermal.h' line='41' column='1'/>
+        <parameter type-id='404b1300' name='tz' filepath='include/trace/hooks/thermal.h' line='41' column='1'/>
+        <parameter type-id='d8e6b335' name='update' filepath='include/trace/hooks/thermal.h' line='41' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_mpam_set' mangled-name='__traceiter_android_vh_mpam_set' filepath='include/trace/hooks/mpam.h' line='19' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_mpam_set'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/mpam.h' line='19' column='1'/>
+        <parameter type-id='f23e2572' name='prev' filepath='include/trace/hooks/mpam.h' line='19' column='1'/>
+        <parameter type-id='f23e2572' name='next' filepath='include/trace/hooks/mpam.h' line='19' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_mutex_can_spin_on_owner' mangled-name='__traceiter_android_vh_mutex_can_spin_on_owner' filepath='include/trace/hooks/dtask.h' line='41' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_mutex_can_spin_on_owner'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/dtask.h' line='41' column='1'/>
+        <parameter type-id='e0ea832a' name='lock' filepath='include/trace/hooks/dtask.h' line='41' column='1'/>
+        <parameter type-id='7292109c' name='retval' filepath='include/trace/hooks/dtask.h' line='41' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
       <function-decl name='__traceiter_android_vh_mutex_init' mangled-name='__traceiter_android_vh_mutex_init' filepath='include/trace/hooks/dtask.h' line='32' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_mutex_init'>
         <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/dtask.h' line='32' column='1'/>
         <parameter type-id='e0ea832a' name='lock' filepath='include/trace/hooks/dtask.h' line='32' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='__traceiter_android_vh_mutex_unlock_slowpath' mangled-name='__traceiter_android_vh_mutex_unlock_slowpath' filepath='include/trace/hooks/dtask.h' line='67' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_mutex_unlock_slowpath'>
-        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/dtask.h' line='67' column='1'/>
-        <parameter type-id='e0ea832a' name='lock' filepath='include/trace/hooks/dtask.h' line='67' column='1'/>
+      <function-decl name='__traceiter_android_vh_mutex_opt_spin_finish' mangled-name='__traceiter_android_vh_mutex_opt_spin_finish' filepath='include/trace/hooks/dtask.h' line='38' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_mutex_opt_spin_finish'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/dtask.h' line='38' column='1'/>
+        <parameter type-id='e0ea832a' name='lock' filepath='include/trace/hooks/dtask.h' line='38' column='1'/>
+        <parameter type-id='b50a4934' name='taken' filepath='include/trace/hooks/dtask.h' line='38' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_mutex_opt_spin_start' mangled-name='__traceiter_android_vh_mutex_opt_spin_start' filepath='include/trace/hooks/dtask.h' line='35' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_mutex_opt_spin_start'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/dtask.h' line='35' column='1'/>
+        <parameter type-id='e0ea832a' name='lock' filepath='include/trace/hooks/dtask.h' line='35' column='1'/>
+        <parameter type-id='d8e6b335' name='time_out' filepath='include/trace/hooks/dtask.h' line='35' column='1'/>
+        <parameter type-id='7292109c' name='cnt' filepath='include/trace/hooks/dtask.h' line='35' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_mutex_unlock_slowpath' mangled-name='__traceiter_android_vh_mutex_unlock_slowpath' filepath='include/trace/hooks/dtask.h' line='85' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_mutex_unlock_slowpath'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/dtask.h' line='85' column='1'/>
+        <parameter type-id='e0ea832a' name='lock' filepath='include/trace/hooks/dtask.h' line='85' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
       <function-decl name='__traceiter_android_vh_mutex_wait_finish' mangled-name='__traceiter_android_vh_mutex_wait_finish' filepath='include/trace/hooks/dtask.h' line='29' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_mutex_wait_finish'>
@@ -129541,28 +129806,33 @@
         <parameter type-id='7292109c' name='flag' filepath='include/trace/hooks/printk.h' line='12' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='__traceiter_android_vh_record_mutex_lock_starttime' mangled-name='__traceiter_android_vh_record_mutex_lock_starttime' filepath='include/trace/hooks/dtask.h' line='70' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_record_mutex_lock_starttime'>
-        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/dtask.h' line='70' column='1'/>
-        <parameter type-id='f23e2572' name='tsk' filepath='include/trace/hooks/dtask.h' line='70' column='1'/>
-        <parameter type-id='7359adad' name='settime_jiffies' filepath='include/trace/hooks/dtask.h' line='70' column='1'/>
+      <function-decl name='__traceiter_android_vh_psi_group' mangled-name='__traceiter_android_vh_psi_group' filepath='include/trace/hooks/psi.h' line='18' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_psi_group'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/psi.h' line='18' column='1'/>
+        <parameter type-id='316cdcd3' name='group' filepath='include/trace/hooks/psi.h' line='18' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='__traceiter_android_vh_record_pcpu_rwsem_starttime' mangled-name='__traceiter_android_vh_record_pcpu_rwsem_starttime' filepath='include/trace/hooks/dtask.h' line='79' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_record_pcpu_rwsem_starttime'>
-        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/dtask.h' line='79' column='1'/>
-        <parameter type-id='f23e2572' name='tsk' filepath='include/trace/hooks/dtask.h' line='79' column='1'/>
-        <parameter type-id='7359adad' name='settime_jiffies' filepath='include/trace/hooks/dtask.h' line='79' column='1'/>
+      <function-decl name='__traceiter_android_vh_record_mutex_lock_starttime' mangled-name='__traceiter_android_vh_record_mutex_lock_starttime' filepath='include/trace/hooks/dtask.h' line='88' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_record_mutex_lock_starttime'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/dtask.h' line='88' column='1'/>
+        <parameter type-id='f23e2572' name='tsk' filepath='include/trace/hooks/dtask.h' line='88' column='1'/>
+        <parameter type-id='7359adad' name='settime_jiffies' filepath='include/trace/hooks/dtask.h' line='88' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='__traceiter_android_vh_record_rtmutex_lock_starttime' mangled-name='__traceiter_android_vh_record_rtmutex_lock_starttime' filepath='include/trace/hooks/dtask.h' line='73' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_record_rtmutex_lock_starttime'>
-        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/dtask.h' line='73' column='1'/>
-        <parameter type-id='f23e2572' name='tsk' filepath='include/trace/hooks/dtask.h' line='73' column='1'/>
-        <parameter type-id='7359adad' name='settime_jiffies' filepath='include/trace/hooks/dtask.h' line='73' column='1'/>
+      <function-decl name='__traceiter_android_vh_record_pcpu_rwsem_starttime' mangled-name='__traceiter_android_vh_record_pcpu_rwsem_starttime' filepath='include/trace/hooks/dtask.h' line='97' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_record_pcpu_rwsem_starttime'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/dtask.h' line='97' column='1'/>
+        <parameter type-id='f23e2572' name='tsk' filepath='include/trace/hooks/dtask.h' line='97' column='1'/>
+        <parameter type-id='7359adad' name='settime_jiffies' filepath='include/trace/hooks/dtask.h' line='97' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='__traceiter_android_vh_record_rwsem_lock_starttime' mangled-name='__traceiter_android_vh_record_rwsem_lock_starttime' filepath='include/trace/hooks/dtask.h' line='76' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_record_rwsem_lock_starttime'>
-        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/dtask.h' line='76' column='1'/>
-        <parameter type-id='f23e2572' name='tsk' filepath='include/trace/hooks/dtask.h' line='76' column='1'/>
-        <parameter type-id='7359adad' name='settime_jiffies' filepath='include/trace/hooks/dtask.h' line='76' column='1'/>
+      <function-decl name='__traceiter_android_vh_record_rtmutex_lock_starttime' mangled-name='__traceiter_android_vh_record_rtmutex_lock_starttime' filepath='include/trace/hooks/dtask.h' line='91' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_record_rtmutex_lock_starttime'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/dtask.h' line='91' column='1'/>
+        <parameter type-id='f23e2572' name='tsk' filepath='include/trace/hooks/dtask.h' line='91' column='1'/>
+        <parameter type-id='7359adad' name='settime_jiffies' filepath='include/trace/hooks/dtask.h' line='91' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_record_rwsem_lock_starttime' mangled-name='__traceiter_android_vh_record_rwsem_lock_starttime' filepath='include/trace/hooks/dtask.h' line='94' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_record_rwsem_lock_starttime'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/dtask.h' line='94' column='1'/>
+        <parameter type-id='f23e2572' name='tsk' filepath='include/trace/hooks/dtask.h' line='94' column='1'/>
+        <parameter type-id='7359adad' name='settime_jiffies' filepath='include/trace/hooks/dtask.h' line='94' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
       <function-decl name='__traceiter_android_vh_regmap_update' mangled-name='__traceiter_android_vh_regmap_update' filepath='include/trace/hooks/regmap.h' line='23' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_regmap_update'>
@@ -129591,14 +129861,34 @@
         <parameter type-id='5771c601' name='rproc' filepath='include/trace/hooks/remoteproc.h' line='24' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
+      <function-decl name='__traceiter_android_vh_rwsem_can_spin_on_owner' mangled-name='__traceiter_android_vh_rwsem_can_spin_on_owner' filepath='include/trace/hooks/dtask.h' line='70' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_rwsem_can_spin_on_owner'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/dtask.h' line='70' column='1'/>
+        <parameter type-id='9b58df93' name='sem' filepath='include/trace/hooks/dtask.h' line='70' column='1'/>
+        <parameter type-id='d8e6b335' name='ret' filepath='include/trace/hooks/dtask.h' line='70' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
       <function-decl name='__traceiter_android_vh_rwsem_init' mangled-name='__traceiter_android_vh_rwsem_init' filepath='include/trace/hooks/rwsem.h' line='20' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_rwsem_init'>
         <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/rwsem.h' line='20' column='1'/>
         <parameter type-id='9b58df93' name='sem' filepath='include/trace/hooks/rwsem.h' line='20' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='__traceiter_android_vh_rwsem_read_wait_start' mangled-name='__traceiter_android_vh_rwsem_read_wait_start' filepath='include/trace/hooks/dtask.h' line='43' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_rwsem_read_wait_start'>
-        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/dtask.h' line='43' column='1'/>
-        <parameter type-id='9b58df93' name='sem' filepath='include/trace/hooks/dtask.h' line='43' column='1'/>
+      <function-decl name='__traceiter_android_vh_rwsem_opt_spin_finish' mangled-name='__traceiter_android_vh_rwsem_opt_spin_finish' filepath='include/trace/hooks/dtask.h' line='67' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_rwsem_opt_spin_finish'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/dtask.h' line='67' column='1'/>
+        <parameter type-id='9b58df93' name='sem' filepath='include/trace/hooks/dtask.h' line='67' column='1'/>
+        <parameter type-id='b50a4934' name='taken' filepath='include/trace/hooks/dtask.h' line='67' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_rwsem_opt_spin_start' mangled-name='__traceiter_android_vh_rwsem_opt_spin_start' filepath='include/trace/hooks/dtask.h' line='64' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_rwsem_opt_spin_start'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/dtask.h' line='64' column='1'/>
+        <parameter type-id='9b58df93' name='sem' filepath='include/trace/hooks/dtask.h' line='64' column='1'/>
+        <parameter type-id='d8e6b335' name='time_out' filepath='include/trace/hooks/dtask.h' line='64' column='1'/>
+        <parameter type-id='7292109c' name='cnt' filepath='include/trace/hooks/dtask.h' line='64' column='1'/>
+        <parameter type-id='b50a4934' name='chk_only' filepath='include/trace/hooks/dtask.h' line='64' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_rwsem_read_wait_start' mangled-name='__traceiter_android_vh_rwsem_read_wait_start' filepath='include/trace/hooks/dtask.h' line='52' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_rwsem_read_wait_start'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/dtask.h' line='52' column='1'/>
+        <parameter type-id='9b58df93' name='sem' filepath='include/trace/hooks/dtask.h' line='52' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
       <function-decl name='__traceiter_android_vh_rwsem_wake' mangled-name='__traceiter_android_vh_rwsem_wake' filepath='include/trace/hooks/rwsem.h' line='23' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_rwsem_wake'>
@@ -129616,9 +129906,9 @@
         <parameter type-id='9b58df93' name='sem' filepath='include/trace/hooks/rwsem.h' line='26' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='__traceiter_android_vh_rwsem_write_wait_start' mangled-name='__traceiter_android_vh_rwsem_write_wait_start' filepath='include/trace/hooks/dtask.h' line='49' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_rwsem_write_wait_start'>
-        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/dtask.h' line='49' column='1'/>
-        <parameter type-id='9b58df93' name='sem' filepath='include/trace/hooks/dtask.h' line='49' column='1'/>
+      <function-decl name='__traceiter_android_vh_rwsem_write_wait_start' mangled-name='__traceiter_android_vh_rwsem_write_wait_start' filepath='include/trace/hooks/dtask.h' line='58' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_rwsem_write_wait_start'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/dtask.h' line='58' column='1'/>
+        <parameter type-id='9b58df93' name='sem' filepath='include/trace/hooks/dtask.h' line='58' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
       <function-decl name='__traceiter_android_vh_save_cpu_resume' mangled-name='__traceiter_android_vh_save_cpu_resume' filepath='include/trace/hooks/bl_hib.h' line='18' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_save_cpu_resume'>
@@ -129652,9 +129942,9 @@
         <parameter type-id='7292109c' name='retval' filepath='include/trace/hooks/sched.h' line='423' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='__traceiter_android_vh_sched_show_task' mangled-name='__traceiter_android_vh_sched_show_task' filepath='include/trace/hooks/dtask.h' line='56' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_sched_show_task'>
-        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/dtask.h' line='56' column='1'/>
-        <parameter type-id='f23e2572' name='task' filepath='include/trace/hooks/dtask.h' line='56' column='1'/>
+      <function-decl name='__traceiter_android_vh_sched_show_task' mangled-name='__traceiter_android_vh_sched_show_task' filepath='include/trace/hooks/dtask.h' line='74' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_sched_show_task'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/dtask.h' line='74' column='1'/>
+        <parameter type-id='f23e2572' name='task' filepath='include/trace/hooks/dtask.h' line='74' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
       <function-decl name='__traceiter_android_vh_sched_stat_runtime_rt' mangled-name='__traceiter_android_vh_sched_stat_runtime_rt' filepath='include/trace/hooks/sched.h' line='370' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_sched_stat_runtime_rt'>
@@ -129775,9 +130065,9 @@
         <parameter type-id='eaa32e2f' name='data' filepath='include/trace/hooks/sysrqcrash.h' line='13' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='__traceiter_android_vh_thermal_power_cap' mangled-name='__traceiter_android_vh_thermal_power_cap' filepath='include/trace/hooks/thermal.h' line='41' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_thermal_power_cap'>
-        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/thermal.h' line='41' column='1'/>
-        <parameter type-id='f9409001' name='power_range' filepath='include/trace/hooks/thermal.h' line='41' column='1'/>
+      <function-decl name='__traceiter_android_vh_thermal_power_cap' mangled-name='__traceiter_android_vh_thermal_power_cap' filepath='include/trace/hooks/thermal.h' line='45' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_thermal_power_cap'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/thermal.h' line='45' column='1'/>
+        <parameter type-id='f9409001' name='power_range' filepath='include/trace/hooks/thermal.h' line='45' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
       <function-decl name='__traceiter_android_vh_thermal_register' mangled-name='__traceiter_android_vh_thermal_register' filepath='include/trace/hooks/thermal.h' line='29' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_thermal_register'>
@@ -130355,6 +130645,12 @@
         <parameter type-id='95e97e5e' name='ret' filepath='drivers/usb/gadget/udc/./trace.h' line='124' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
+      <function-decl name='__traceiter_wbc_writepage' mangled-name='__traceiter_wbc_writepage' filepath='include/trace/events/writeback.h' line='496' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_wbc_writepage'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/events/writeback.h' line='496' column='1'/>
+        <parameter type-id='c2c60445' name='wbc' filepath='include/trace/events/writeback.h' line='496' column='1'/>
+        <parameter type-id='ef4fae1b' name='bdi' filepath='include/trace/events/writeback.h' line='496' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
       <function-decl name='__traceiter_workqueue_execute_end' mangled-name='__traceiter_workqueue_execute_end' filepath='include/trace/events/workqueue.h' line='108' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_workqueue_execute_end'>
         <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/events/workqueue.h' line='108' column='1'/>
         <parameter type-id='83c1bde6' name='work' filepath='include/trace/events/workqueue.h' line='108' column='1'/>
@@ -130516,7 +130812,7 @@
       <var-decl name='__tracepoint_android_vh_alloc_pages_reclaim_bypass' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_alloc_pages_reclaim_bypass' visibility='default' filepath='include/trace/hooks/mm.h' line='139' column='1' elf-symbol-id='__tracepoint_android_vh_alloc_pages_reclaim_bypass'/>
       <var-decl name='__tracepoint_android_vh_alloc_pages_slowpath' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_alloc_pages_slowpath' visibility='default' filepath='include/trace/hooks/mm.h' line='58' column='1' elf-symbol-id='__tracepoint_android_vh_alloc_pages_slowpath'/>
       <var-decl name='__tracepoint_android_vh_alter_futex_plist_add' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_alter_futex_plist_add' visibility='default' filepath='include/trace/hooks/futex.h' line='24' column='1' elf-symbol-id='__tracepoint_android_vh_alter_futex_plist_add'/>
-      <var-decl name='__tracepoint_android_vh_alter_mutex_list_add' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_alter_mutex_list_add' visibility='default' filepath='include/trace/hooks/dtask.h' line='61' column='1' elf-symbol-id='__tracepoint_android_vh_alter_mutex_list_add'/>
+      <var-decl name='__tracepoint_android_vh_alter_mutex_list_add' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_alter_mutex_list_add' visibility='default' filepath='include/trace/hooks/dtask.h' line='79' column='1' elf-symbol-id='__tracepoint_android_vh_alter_mutex_list_add'/>
       <var-decl name='__tracepoint_android_vh_alter_rwsem_list_add' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_alter_rwsem_list_add' visibility='default' filepath='include/trace/hooks/rwsem.h' line='29' column='1' elf-symbol-id='__tracepoint_android_vh_alter_rwsem_list_add'/>
       <var-decl name='__tracepoint_android_vh_arch_set_freq_scale' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_arch_set_freq_scale' visibility='default' filepath='include/trace/hooks/topology.h' line='18' column='1' elf-symbol-id='__tracepoint_android_vh_arch_set_freq_scale'/>
       <var-decl name='__tracepoint_android_vh_atomic_remove_fb' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_atomic_remove_fb' visibility='default' filepath='include/trace/hooks/drm_framebuffer.h' line='20' column='1' elf-symbol-id='__tracepoint_android_vh_atomic_remove_fb'/>
@@ -130524,26 +130820,26 @@
       <var-decl name='__tracepoint_android_vh_audio_usb_offload_ep_action' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_audio_usb_offload_ep_action' visibility='default' filepath='include/trace/hooks/audio_usboffload.h' line='26' column='1' elf-symbol-id='__tracepoint_android_vh_audio_usb_offload_ep_action'/>
       <var-decl name='__tracepoint_android_vh_audio_usb_offload_suspend' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_audio_usb_offload_suspend' visibility='default' filepath='include/trace/hooks/audio_usboffload.h' line='42' column='1' elf-symbol-id='__tracepoint_android_vh_audio_usb_offload_suspend'/>
       <var-decl name='__tracepoint_android_vh_audio_usb_offload_synctype' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_audio_usb_offload_synctype' visibility='default' filepath='include/trace/hooks/audio_usboffload.h' line='30' column='1' elf-symbol-id='__tracepoint_android_vh_audio_usb_offload_synctype'/>
-      <var-decl name='__tracepoint_android_vh_binder_alloc_new_buf_locked' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_binder_alloc_new_buf_locked' visibility='default' filepath='include/trace/hooks/binder.h' line='86' column='1' elf-symbol-id='__tracepoint_android_vh_binder_alloc_new_buf_locked'/>
-      <var-decl name='__tracepoint_android_vh_binder_del_ref' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_binder_del_ref' visibility='default' filepath='include/trace/hooks/binder.h' line='108' column='1' elf-symbol-id='__tracepoint_android_vh_binder_del_ref'/>
-      <var-decl name='__tracepoint_android_vh_binder_free_proc' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_binder_free_proc' visibility='default' filepath='include/trace/hooks/binder.h' line='74' column='1' elf-symbol-id='__tracepoint_android_vh_binder_free_proc'/>
-      <var-decl name='__tracepoint_android_vh_binder_has_work_ilocked' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_binder_has_work_ilocked' visibility='default' filepath='include/trace/hooks/binder.h' line='83' column='1' elf-symbol-id='__tracepoint_android_vh_binder_has_work_ilocked'/>
-      <var-decl name='__tracepoint_android_vh_binder_looper_state_registered' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_binder_looper_state_registered' visibility='default' filepath='include/trace/hooks/binder.h' line='67' column='1' elf-symbol-id='__tracepoint_android_vh_binder_looper_state_registered'/>
-      <var-decl name='__tracepoint_android_vh_binder_new_ref' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_binder_new_ref' visibility='default' filepath='include/trace/hooks/binder.h' line='105' column='1' elf-symbol-id='__tracepoint_android_vh_binder_new_ref'/>
-      <var-decl name='__tracepoint_android_vh_binder_preset' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_binder_preset' visibility='default' filepath='include/trace/hooks/binder.h' line='97' column='1' elf-symbol-id='__tracepoint_android_vh_binder_preset'/>
-      <var-decl name='__tracepoint_android_vh_binder_print_transaction_info' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_binder_print_transaction_info' visibility='default' filepath='include/trace/hooks/binder.h' line='63' column='1' elf-symbol-id='__tracepoint_android_vh_binder_print_transaction_info'/>
+      <var-decl name='__tracepoint_android_vh_binder_alloc_new_buf_locked' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_binder_alloc_new_buf_locked' visibility='default' filepath='include/trace/hooks/binder.h' line='82' column='1' elf-symbol-id='__tracepoint_android_vh_binder_alloc_new_buf_locked'/>
+      <var-decl name='__tracepoint_android_vh_binder_del_ref' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_binder_del_ref' visibility='default' filepath='include/trace/hooks/binder.h' line='104' column='1' elf-symbol-id='__tracepoint_android_vh_binder_del_ref'/>
+      <var-decl name='__tracepoint_android_vh_binder_free_proc' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_binder_free_proc' visibility='default' filepath='include/trace/hooks/binder.h' line='70' column='1' elf-symbol-id='__tracepoint_android_vh_binder_free_proc'/>
+      <var-decl name='__tracepoint_android_vh_binder_has_work_ilocked' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_binder_has_work_ilocked' visibility='default' filepath='include/trace/hooks/binder.h' line='79' column='1' elf-symbol-id='__tracepoint_android_vh_binder_has_work_ilocked'/>
+      <var-decl name='__tracepoint_android_vh_binder_looper_state_registered' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_binder_looper_state_registered' visibility='default' filepath='include/trace/hooks/binder.h' line='63' column='1' elf-symbol-id='__tracepoint_android_vh_binder_looper_state_registered'/>
+      <var-decl name='__tracepoint_android_vh_binder_new_ref' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_binder_new_ref' visibility='default' filepath='include/trace/hooks/binder.h' line='101' column='1' elf-symbol-id='__tracepoint_android_vh_binder_new_ref'/>
+      <var-decl name='__tracepoint_android_vh_binder_preset' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_binder_preset' visibility='default' filepath='include/trace/hooks/binder.h' line='93' column='1' elf-symbol-id='__tracepoint_android_vh_binder_preset'/>
+      <var-decl name='__tracepoint_android_vh_binder_print_transaction_info' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_binder_print_transaction_info' visibility='default' filepath='include/trace/hooks/binder.h' line='59' column='1' elf-symbol-id='__tracepoint_android_vh_binder_print_transaction_info'/>
       <var-decl name='__tracepoint_android_vh_binder_priority_skip' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_binder_priority_skip' visibility='default' filepath='include/trace/hooks/binder.h' line='28' column='1' elf-symbol-id='__tracepoint_android_vh_binder_priority_skip'/>
-      <var-decl name='__tracepoint_android_vh_binder_proc_transaction' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_binder_proc_transaction' visibility='default' filepath='include/trace/hooks/binder.h' line='100' column='1' elf-symbol-id='__tracepoint_android_vh_binder_proc_transaction'/>
-      <var-decl name='__tracepoint_android_vh_binder_proc_transaction_entry' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_binder_proc_transaction_entry' visibility='default' filepath='include/trace/hooks/binder.h' line='50' column='1' elf-symbol-id='__tracepoint_android_vh_binder_proc_transaction_entry'/>
-      <var-decl name='__tracepoint_android_vh_binder_proc_transaction_finish' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_binder_proc_transaction_finish' visibility='default' filepath='include/trace/hooks/binder.h' line='59' column='1' elf-symbol-id='__tracepoint_android_vh_binder_proc_transaction_finish'/>
-      <var-decl name='__tracepoint_android_vh_binder_read_done' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_binder_read_done' visibility='default' filepath='include/trace/hooks/binder.h' line='80' column='1' elf-symbol-id='__tracepoint_android_vh_binder_read_done'/>
-      <var-decl name='__tracepoint_android_vh_binder_reply' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_binder_reply' visibility='default' filepath='include/trace/hooks/binder.h' line='89' column='1' elf-symbol-id='__tracepoint_android_vh_binder_reply'/>
+      <var-decl name='__tracepoint_android_vh_binder_proc_transaction' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_binder_proc_transaction' visibility='default' filepath='include/trace/hooks/binder.h' line='96' column='1' elf-symbol-id='__tracepoint_android_vh_binder_proc_transaction'/>
+      <var-decl name='__tracepoint_android_vh_binder_proc_transaction_entry' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_binder_proc_transaction_entry' visibility='default' filepath='include/trace/hooks/binder.h' line='46' column='1' elf-symbol-id='__tracepoint_android_vh_binder_proc_transaction_entry'/>
+      <var-decl name='__tracepoint_android_vh_binder_proc_transaction_finish' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_binder_proc_transaction_finish' visibility='default' filepath='include/trace/hooks/binder.h' line='55' column='1' elf-symbol-id='__tracepoint_android_vh_binder_proc_transaction_finish'/>
+      <var-decl name='__tracepoint_android_vh_binder_read_done' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_binder_read_done' visibility='default' filepath='include/trace/hooks/binder.h' line='76' column='1' elf-symbol-id='__tracepoint_android_vh_binder_read_done'/>
+      <var-decl name='__tracepoint_android_vh_binder_reply' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_binder_reply' visibility='default' filepath='include/trace/hooks/binder.h' line='85' column='1' elf-symbol-id='__tracepoint_android_vh_binder_reply'/>
       <var-decl name='__tracepoint_android_vh_binder_restore_priority' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_binder_restore_priority' visibility='default' filepath='include/trace/hooks/binder.h' line='34' column='1' elf-symbol-id='__tracepoint_android_vh_binder_restore_priority'/>
-      <var-decl name='__tracepoint_android_vh_binder_select_worklist_ilocked' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_binder_select_worklist_ilocked' visibility='default' filepath='include/trace/hooks/binder.h' line='55' column='1' elf-symbol-id='__tracepoint_android_vh_binder_select_worklist_ilocked'/>
+      <var-decl name='__tracepoint_android_vh_binder_select_worklist_ilocked' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_binder_select_worklist_ilocked' visibility='default' filepath='include/trace/hooks/binder.h' line='51' column='1' elf-symbol-id='__tracepoint_android_vh_binder_select_worklist_ilocked'/>
       <var-decl name='__tracepoint_android_vh_binder_set_priority' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_binder_set_priority' visibility='default' filepath='include/trace/hooks/binder.h' line='31' column='1' elf-symbol-id='__tracepoint_android_vh_binder_set_priority'/>
-      <var-decl name='__tracepoint_android_vh_binder_thread_read' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_binder_thread_read' visibility='default' filepath='include/trace/hooks/binder.h' line='70' column='1' elf-symbol-id='__tracepoint_android_vh_binder_thread_read'/>
-      <var-decl name='__tracepoint_android_vh_binder_thread_release' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_binder_thread_release' visibility='default' filepath='include/trace/hooks/binder.h' line='77' column='1' elf-symbol-id='__tracepoint_android_vh_binder_thread_release'/>
-      <var-decl name='__tracepoint_android_vh_binder_trans' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_binder_trans' visibility='default' filepath='include/trace/hooks/binder.h' line='93' column='1' elf-symbol-id='__tracepoint_android_vh_binder_trans'/>
+      <var-decl name='__tracepoint_android_vh_binder_thread_read' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_binder_thread_read' visibility='default' filepath='include/trace/hooks/binder.h' line='66' column='1' elf-symbol-id='__tracepoint_android_vh_binder_thread_read'/>
+      <var-decl name='__tracepoint_android_vh_binder_thread_release' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_binder_thread_release' visibility='default' filepath='include/trace/hooks/binder.h' line='73' column='1' elf-symbol-id='__tracepoint_android_vh_binder_thread_release'/>
+      <var-decl name='__tracepoint_android_vh_binder_trans' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_binder_trans' visibility='default' filepath='include/trace/hooks/binder.h' line='89' column='1' elf-symbol-id='__tracepoint_android_vh_binder_trans'/>
       <var-decl name='__tracepoint_android_vh_binder_transaction_init' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_binder_transaction_init' visibility='default' filepath='include/trace/hooks/binder.h' line='25' column='1' elf-symbol-id='__tracepoint_android_vh_binder_transaction_init'/>
       <var-decl name='__tracepoint_android_vh_binder_wait_for_work' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_binder_wait_for_work' visibility='default' filepath='include/trace/hooks/binder.h' line='40' column='1' elf-symbol-id='__tracepoint_android_vh_binder_wait_for_work'/>
       <var-decl name='__tracepoint_android_vh_binder_wakeup_ilocked' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_binder_wakeup_ilocked' visibility='default' filepath='include/trace/hooks/binder.h' line='37' column='1' elf-symbol-id='__tracepoint_android_vh_binder_wakeup_ilocked'/>
@@ -130572,7 +130868,7 @@
       <var-decl name='__tracepoint_android_vh_cpuidle_psci_exit' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_cpuidle_psci_exit' visibility='default' filepath='include/trace/hooks/cpuidle_psci.h' line='23' column='1' elf-symbol-id='__tracepoint_android_vh_cpuidle_psci_exit'/>
       <var-decl name='__tracepoint_android_vh_del_page_from_lrulist' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_del_page_from_lrulist' visibility='default' filepath='include/trace/hooks/mm.h' line='121' column='1' elf-symbol-id='__tracepoint_android_vh_del_page_from_lrulist'/>
       <var-decl name='__tracepoint_android_vh_direct_io_update_bio' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_direct_io_update_bio' visibility='default' filepath='include/trace/hooks/direct_io.h' line='14' column='1' elf-symbol-id='__tracepoint_android_vh_direct_io_update_bio'/>
-      <var-decl name='__tracepoint_android_vh_disable_thermal_cooling_stats' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_disable_thermal_cooling_stats' visibility='default' filepath='include/trace/hooks/thermal.h' line='49' column='1' elf-symbol-id='__tracepoint_android_vh_disable_thermal_cooling_stats'/>
+      <var-decl name='__tracepoint_android_vh_disable_thermal_cooling_stats' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_disable_thermal_cooling_stats' visibility='default' filepath='include/trace/hooks/thermal.h' line='53' column='1' elf-symbol-id='__tracepoint_android_vh_disable_thermal_cooling_stats'/>
       <var-decl name='__tracepoint_android_vh_dm_update_clone_bio' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_dm_update_clone_bio' visibility='default' filepath='include/trace/hooks/dm.h' line='14' column='1' elf-symbol-id='__tracepoint_android_vh_dm_update_clone_bio'/>
       <var-decl name='__tracepoint_android_vh_dma_buf_release' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_dma_buf_release' visibility='default' filepath='include/trace/hooks/dmabuf.h' line='20' column='1' elf-symbol-id='__tracepoint_android_vh_dma_buf_release'/>
       <var-decl name='__tracepoint_android_vh_dmabuf_heap_flags_validation' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_dmabuf_heap_flags_validation' visibility='default' filepath='include/trace/hooks/dmabuf.h' line='25' column='1' elf-symbol-id='__tracepoint_android_vh_dmabuf_heap_flags_validation'/>
@@ -130604,7 +130900,7 @@
       <var-decl name='__tracepoint_android_vh_futex_wake_this' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_futex_wake_this' visibility='default' filepath='include/trace/hooks/futex.h' line='55' column='1' elf-symbol-id='__tracepoint_android_vh_futex_wake_this'/>
       <var-decl name='__tracepoint_android_vh_futex_wake_traverse_plist' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_futex_wake_traverse_plist' visibility='default' filepath='include/trace/hooks/futex.h' line='50' column='1' elf-symbol-id='__tracepoint_android_vh_futex_wake_traverse_plist'/>
       <var-decl name='__tracepoint_android_vh_futex_wake_up_q_finish' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_futex_wake_up_q_finish' visibility='default' filepath='include/trace/hooks/futex.h' line='60' column='1' elf-symbol-id='__tracepoint_android_vh_futex_wake_up_q_finish'/>
-      <var-decl name='__tracepoint_android_vh_get_thermal_zone_device' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_get_thermal_zone_device' visibility='default' filepath='include/trace/hooks/thermal.h' line='45' column='1' elf-symbol-id='__tracepoint_android_vh_get_thermal_zone_device'/>
+      <var-decl name='__tracepoint_android_vh_get_thermal_zone_device' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_get_thermal_zone_device' visibility='default' filepath='include/trace/hooks/thermal.h' line='49' column='1' elf-symbol-id='__tracepoint_android_vh_get_thermal_zone_device'/>
       <var-decl name='__tracepoint_android_vh_gic_resume' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_gic_resume' visibility='default' filepath='include/trace/hooks/gic_v3.h' line='32' column='1' elf-symbol-id='__tracepoint_android_vh_gic_resume'/>
       <var-decl name='__tracepoint_android_vh_gic_set_affinity' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_gic_set_affinity' visibility='default' filepath='include/trace/hooks/gic.h' line='26' column='1' elf-symbol-id='__tracepoint_android_vh_gic_set_affinity'/>
       <var-decl name='__tracepoint_android_vh_gic_suspend' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_gic_suspend' visibility='default' filepath='include/trace/hooks/gic_v3.h' line='35' column='1' elf-symbol-id='__tracepoint_android_vh_gic_suspend'/>
@@ -130646,11 +130942,16 @@
       <var-decl name='__tracepoint_android_vh_mmc_sdio_pm_flag_set' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_mmc_sdio_pm_flag_set' visibility='default' filepath='include/trace/hooks/mmc.h' line='30' column='1' elf-symbol-id='__tracepoint_android_vh_mmc_sdio_pm_flag_set'/>
       <var-decl name='__tracepoint_android_vh_mmc_update_partition_status' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_mmc_update_partition_status' visibility='default' filepath='include/trace/hooks/mmc.h' line='63' column='1' elf-symbol-id='__tracepoint_android_vh_mmc_update_partition_status'/>
       <var-decl name='__tracepoint_android_vh_mmput' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_mmput' visibility='default' filepath='include/trace/hooks/sched.h' line='431' column='1' elf-symbol-id='__tracepoint_android_vh_mmput'/>
-      <var-decl name='__tracepoint_android_vh_modify_thermal_cpu_get_power' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_modify_thermal_cpu_get_power' visibility='default' filepath='include/trace/hooks/thermal.h' line='53' column='1' elf-symbol-id='__tracepoint_android_vh_modify_thermal_cpu_get_power'/>
+      <var-decl name='__tracepoint_android_vh_modify_thermal_cpu_get_power' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_modify_thermal_cpu_get_power' visibility='default' filepath='include/trace/hooks/thermal.h' line='57' column='1' elf-symbol-id='__tracepoint_android_vh_modify_thermal_cpu_get_power'/>
       <var-decl name='__tracepoint_android_vh_modify_thermal_request_freq' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_modify_thermal_request_freq' visibility='default' filepath='include/trace/hooks/thermal.h' line='21' column='1' elf-symbol-id='__tracepoint_android_vh_modify_thermal_request_freq'/>
       <var-decl name='__tracepoint_android_vh_modify_thermal_target_freq' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_modify_thermal_target_freq' visibility='default' filepath='include/trace/hooks/thermal.h' line='25' column='1' elf-symbol-id='__tracepoint_android_vh_modify_thermal_target_freq'/>
+      <var-decl name='__tracepoint_android_vh_modify_thermal_throttle_update' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_modify_thermal_throttle_update' visibility='default' filepath='include/trace/hooks/thermal.h' line='41' column='1' elf-symbol-id='__tracepoint_android_vh_modify_thermal_throttle_update'/>
+      <var-decl name='__tracepoint_android_vh_mpam_set' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_mpam_set' visibility='default' filepath='include/trace/hooks/mpam.h' line='19' column='1' elf-symbol-id='__tracepoint_android_vh_mpam_set'/>
+      <var-decl name='__tracepoint_android_vh_mutex_can_spin_on_owner' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_mutex_can_spin_on_owner' visibility='default' filepath='include/trace/hooks/dtask.h' line='41' column='1' elf-symbol-id='__tracepoint_android_vh_mutex_can_spin_on_owner'/>
       <var-decl name='__tracepoint_android_vh_mutex_init' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_mutex_init' visibility='default' filepath='include/trace/hooks/dtask.h' line='32' column='1' elf-symbol-id='__tracepoint_android_vh_mutex_init'/>
-      <var-decl name='__tracepoint_android_vh_mutex_unlock_slowpath' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_mutex_unlock_slowpath' visibility='default' filepath='include/trace/hooks/dtask.h' line='67' column='1' elf-symbol-id='__tracepoint_android_vh_mutex_unlock_slowpath'/>
+      <var-decl name='__tracepoint_android_vh_mutex_opt_spin_finish' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_mutex_opt_spin_finish' visibility='default' filepath='include/trace/hooks/dtask.h' line='38' column='1' elf-symbol-id='__tracepoint_android_vh_mutex_opt_spin_finish'/>
+      <var-decl name='__tracepoint_android_vh_mutex_opt_spin_start' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_mutex_opt_spin_start' visibility='default' filepath='include/trace/hooks/dtask.h' line='35' column='1' elf-symbol-id='__tracepoint_android_vh_mutex_opt_spin_start'/>
+      <var-decl name='__tracepoint_android_vh_mutex_unlock_slowpath' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_mutex_unlock_slowpath' visibility='default' filepath='include/trace/hooks/dtask.h' line='85' column='1' elf-symbol-id='__tracepoint_android_vh_mutex_unlock_slowpath'/>
       <var-decl name='__tracepoint_android_vh_mutex_wait_finish' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_mutex_wait_finish' visibility='default' filepath='include/trace/hooks/dtask.h' line='29' column='1' elf-symbol-id='__tracepoint_android_vh_mutex_wait_finish'/>
       <var-decl name='__tracepoint_android_vh_mutex_wait_start' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_mutex_wait_start' visibility='default' filepath='include/trace/hooks/dtask.h' line='26' column='1' elf-symbol-id='__tracepoint_android_vh_mutex_wait_start'/>
       <var-decl name='__tracepoint_android_vh_page_cache_forced_ra' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_page_cache_forced_ra' visibility='default' filepath='include/trace/hooks/mm.h' line='136' column='1' elf-symbol-id='__tracepoint_android_vh_page_cache_forced_ra'/>
@@ -130666,31 +130967,35 @@
       <var-decl name='__tracepoint_android_vh_printk_caller_id' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_printk_caller_id' visibility='default' filepath='include/trace/hooks/printk.h' line='16' column='1' elf-symbol-id='__tracepoint_android_vh_printk_caller_id'/>
       <var-decl name='__tracepoint_android_vh_printk_ext_header' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_printk_ext_header' visibility='default' filepath='include/trace/hooks/printk.h' line='22' column='1' elf-symbol-id='__tracepoint_android_vh_printk_ext_header'/>
       <var-decl name='__tracepoint_android_vh_printk_hotplug' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_printk_hotplug' visibility='default' filepath='include/trace/hooks/printk.h' line='12' column='1' elf-symbol-id='__tracepoint_android_vh_printk_hotplug'/>
+      <var-decl name='__tracepoint_android_vh_psi_group' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_psi_group' visibility='default' filepath='include/trace/hooks/psi.h' line='18' column='1' elf-symbol-id='__tracepoint_android_vh_psi_group'/>
       <var-decl name='__tracepoint_android_vh_ptype_head' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_ptype_head' visibility='default' filepath='include/trace/hooks/net.h' line='21' column='1' elf-symbol-id='__tracepoint_android_vh_ptype_head'/>
-      <var-decl name='__tracepoint_android_vh_record_mutex_lock_starttime' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_record_mutex_lock_starttime' visibility='default' filepath='include/trace/hooks/dtask.h' line='70' column='1' elf-symbol-id='__tracepoint_android_vh_record_mutex_lock_starttime'/>
-      <var-decl name='__tracepoint_android_vh_record_pcpu_rwsem_starttime' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_record_pcpu_rwsem_starttime' visibility='default' filepath='include/trace/hooks/dtask.h' line='79' column='1' elf-symbol-id='__tracepoint_android_vh_record_pcpu_rwsem_starttime'/>
-      <var-decl name='__tracepoint_android_vh_record_rtmutex_lock_starttime' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_record_rtmutex_lock_starttime' visibility='default' filepath='include/trace/hooks/dtask.h' line='73' column='1' elf-symbol-id='__tracepoint_android_vh_record_rtmutex_lock_starttime'/>
-      <var-decl name='__tracepoint_android_vh_record_rwsem_lock_starttime' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_record_rwsem_lock_starttime' visibility='default' filepath='include/trace/hooks/dtask.h' line='76' column='1' elf-symbol-id='__tracepoint_android_vh_record_rwsem_lock_starttime'/>
+      <var-decl name='__tracepoint_android_vh_record_mutex_lock_starttime' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_record_mutex_lock_starttime' visibility='default' filepath='include/trace/hooks/dtask.h' line='88' column='1' elf-symbol-id='__tracepoint_android_vh_record_mutex_lock_starttime'/>
+      <var-decl name='__tracepoint_android_vh_record_pcpu_rwsem_starttime' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_record_pcpu_rwsem_starttime' visibility='default' filepath='include/trace/hooks/dtask.h' line='97' column='1' elf-symbol-id='__tracepoint_android_vh_record_pcpu_rwsem_starttime'/>
+      <var-decl name='__tracepoint_android_vh_record_rtmutex_lock_starttime' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_record_rtmutex_lock_starttime' visibility='default' filepath='include/trace/hooks/dtask.h' line='91' column='1' elf-symbol-id='__tracepoint_android_vh_record_rtmutex_lock_starttime'/>
+      <var-decl name='__tracepoint_android_vh_record_rwsem_lock_starttime' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_record_rwsem_lock_starttime' visibility='default' filepath='include/trace/hooks/dtask.h' line='94' column='1' elf-symbol-id='__tracepoint_android_vh_record_rwsem_lock_starttime'/>
       <var-decl name='__tracepoint_android_vh_regmap_update' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_regmap_update' visibility='default' filepath='include/trace/hooks/regmap.h' line='23' column='1' elf-symbol-id='__tracepoint_android_vh_regmap_update'/>
       <var-decl name='__tracepoint_android_vh_rmqueue' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_rmqueue' visibility='default' filepath='include/trace/hooks/mm.h' line='150' column='1' elf-symbol-id='__tracepoint_android_vh_rmqueue'/>
       <var-decl name='__tracepoint_android_vh_rproc_recovery' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_rproc_recovery' visibility='default' filepath='include/trace/hooks/remoteproc.h' line='19' column='1' elf-symbol-id='__tracepoint_android_vh_rproc_recovery'/>
       <var-decl name='__tracepoint_android_vh_rproc_recovery_set' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_rproc_recovery_set' visibility='default' filepath='include/trace/hooks/remoteproc.h' line='24' column='1' elf-symbol-id='__tracepoint_android_vh_rproc_recovery_set'/>
-      <var-decl name='__tracepoint_android_vh_rtmutex_wait_finish' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_rtmutex_wait_finish' visibility='default' filepath='include/trace/hooks/dtask.h' line='39' column='1' elf-symbol-id='__tracepoint_android_vh_rtmutex_wait_finish'/>
-      <var-decl name='__tracepoint_android_vh_rtmutex_wait_start' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_rtmutex_wait_start' visibility='default' filepath='include/trace/hooks/dtask.h' line='36' column='1' elf-symbol-id='__tracepoint_android_vh_rtmutex_wait_start'/>
+      <var-decl name='__tracepoint_android_vh_rtmutex_wait_finish' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_rtmutex_wait_finish' visibility='default' filepath='include/trace/hooks/dtask.h' line='48' column='1' elf-symbol-id='__tracepoint_android_vh_rtmutex_wait_finish'/>
+      <var-decl name='__tracepoint_android_vh_rtmutex_wait_start' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_rtmutex_wait_start' visibility='default' filepath='include/trace/hooks/dtask.h' line='45' column='1' elf-symbol-id='__tracepoint_android_vh_rtmutex_wait_start'/>
+      <var-decl name='__tracepoint_android_vh_rwsem_can_spin_on_owner' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_rwsem_can_spin_on_owner' visibility='default' filepath='include/trace/hooks/dtask.h' line='70' column='1' elf-symbol-id='__tracepoint_android_vh_rwsem_can_spin_on_owner'/>
       <var-decl name='__tracepoint_android_vh_rwsem_init' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_rwsem_init' visibility='default' filepath='include/trace/hooks/rwsem.h' line='20' column='1' elf-symbol-id='__tracepoint_android_vh_rwsem_init'/>
-      <var-decl name='__tracepoint_android_vh_rwsem_read_wait_finish' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_rwsem_read_wait_finish' visibility='default' filepath='include/trace/hooks/dtask.h' line='46' column='1' elf-symbol-id='__tracepoint_android_vh_rwsem_read_wait_finish'/>
-      <var-decl name='__tracepoint_android_vh_rwsem_read_wait_start' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_rwsem_read_wait_start' visibility='default' filepath='include/trace/hooks/dtask.h' line='43' column='1' elf-symbol-id='__tracepoint_android_vh_rwsem_read_wait_start'/>
+      <var-decl name='__tracepoint_android_vh_rwsem_opt_spin_finish' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_rwsem_opt_spin_finish' visibility='default' filepath='include/trace/hooks/dtask.h' line='67' column='1' elf-symbol-id='__tracepoint_android_vh_rwsem_opt_spin_finish'/>
+      <var-decl name='__tracepoint_android_vh_rwsem_opt_spin_start' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_rwsem_opt_spin_start' visibility='default' filepath='include/trace/hooks/dtask.h' line='64' column='1' elf-symbol-id='__tracepoint_android_vh_rwsem_opt_spin_start'/>
+      <var-decl name='__tracepoint_android_vh_rwsem_read_wait_finish' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_rwsem_read_wait_finish' visibility='default' filepath='include/trace/hooks/dtask.h' line='55' column='1' elf-symbol-id='__tracepoint_android_vh_rwsem_read_wait_finish'/>
+      <var-decl name='__tracepoint_android_vh_rwsem_read_wait_start' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_rwsem_read_wait_start' visibility='default' filepath='include/trace/hooks/dtask.h' line='52' column='1' elf-symbol-id='__tracepoint_android_vh_rwsem_read_wait_start'/>
       <var-decl name='__tracepoint_android_vh_rwsem_wake' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_rwsem_wake' visibility='default' filepath='include/trace/hooks/rwsem.h' line='23' column='1' elf-symbol-id='__tracepoint_android_vh_rwsem_wake'/>
       <var-decl name='__tracepoint_android_vh_rwsem_wake_finish' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_rwsem_wake_finish' visibility='default' filepath='include/trace/hooks/rwsem.h' line='34' column='1' elf-symbol-id='__tracepoint_android_vh_rwsem_wake_finish'/>
       <var-decl name='__tracepoint_android_vh_rwsem_write_finished' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_rwsem_write_finished' visibility='default' filepath='include/trace/hooks/rwsem.h' line='26' column='1' elf-symbol-id='__tracepoint_android_vh_rwsem_write_finished'/>
-      <var-decl name='__tracepoint_android_vh_rwsem_write_wait_finish' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_rwsem_write_wait_finish' visibility='default' filepath='include/trace/hooks/dtask.h' line='52' column='1' elf-symbol-id='__tracepoint_android_vh_rwsem_write_wait_finish'/>
-      <var-decl name='__tracepoint_android_vh_rwsem_write_wait_start' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_rwsem_write_wait_start' visibility='default' filepath='include/trace/hooks/dtask.h' line='49' column='1' elf-symbol-id='__tracepoint_android_vh_rwsem_write_wait_start'/>
+      <var-decl name='__tracepoint_android_vh_rwsem_write_wait_finish' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_rwsem_write_wait_finish' visibility='default' filepath='include/trace/hooks/dtask.h' line='61' column='1' elf-symbol-id='__tracepoint_android_vh_rwsem_write_wait_finish'/>
+      <var-decl name='__tracepoint_android_vh_rwsem_write_wait_start' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_rwsem_write_wait_start' visibility='default' filepath='include/trace/hooks/dtask.h' line='58' column='1' elf-symbol-id='__tracepoint_android_vh_rwsem_write_wait_start'/>
       <var-decl name='__tracepoint_android_vh_save_cpu_resume' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_save_cpu_resume' visibility='default' filepath='include/trace/hooks/bl_hib.h' line='18' column='1' elf-symbol-id='__tracepoint_android_vh_save_cpu_resume'/>
       <var-decl name='__tracepoint_android_vh_save_hib_resume_bdev' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_save_hib_resume_bdev' visibility='default' filepath='include/trace/hooks/bl_hib.h' line='22' column='1' elf-symbol-id='__tracepoint_android_vh_save_hib_resume_bdev'/>
       <var-decl name='__tracepoint_android_vh_save_track_hash' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_save_track_hash' visibility='default' filepath='include/trace/hooks/mm.h' line='147' column='1' elf-symbol-id='__tracepoint_android_vh_save_track_hash'/>
       <var-decl name='__tracepoint_android_vh_sched_pelt_multiplier' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_sched_pelt_multiplier' visibility='default' filepath='include/trace/hooks/sched.h' line='325' column='1' elf-symbol-id='__tracepoint_android_vh_sched_pelt_multiplier'/>
       <var-decl name='__tracepoint_android_vh_sched_setaffinity_early' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_sched_setaffinity_early' visibility='default' filepath='include/trace/hooks/sched.h' line='423' column='1' elf-symbol-id='__tracepoint_android_vh_sched_setaffinity_early'/>
-      <var-decl name='__tracepoint_android_vh_sched_show_task' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_sched_show_task' visibility='default' filepath='include/trace/hooks/dtask.h' line='56' column='1' elf-symbol-id='__tracepoint_android_vh_sched_show_task'/>
+      <var-decl name='__tracepoint_android_vh_sched_show_task' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_sched_show_task' visibility='default' filepath='include/trace/hooks/dtask.h' line='74' column='1' elf-symbol-id='__tracepoint_android_vh_sched_show_task'/>
       <var-decl name='__tracepoint_android_vh_sched_stat_runtime_rt' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_sched_stat_runtime_rt' visibility='default' filepath='include/trace/hooks/sched.h' line='370' column='1' elf-symbol-id='__tracepoint_android_vh_sched_stat_runtime_rt'/>
       <var-decl name='__tracepoint_android_vh_scheduler_tick' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_scheduler_tick' visibility='default' filepath='include/trace/hooks/sched.h' line='34' column='1' elf-symbol-id='__tracepoint_android_vh_scheduler_tick'/>
       <var-decl name='__tracepoint_android_vh_sd_update_bus_speed_mode' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_sd_update_bus_speed_mode' visibility='default' filepath='include/trace/hooks/mmc.h' line='39' column='1' elf-symbol-id='__tracepoint_android_vh_sd_update_bus_speed_mode'/>
@@ -130711,7 +131016,7 @@
       <var-decl name='__tracepoint_android_vh_sync_txn_recvd' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_sync_txn_recvd' visibility='default' filepath='include/trace/hooks/binder.h' line='43' column='1' elf-symbol-id='__tracepoint_android_vh_sync_txn_recvd'/>
       <var-decl name='__tracepoint_android_vh_syscall_prctl_finished' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_syscall_prctl_finished' visibility='default' filepath='include/trace/hooks/sys.h' line='16' column='1' elf-symbol-id='__tracepoint_android_vh_syscall_prctl_finished'/>
       <var-decl name='__tracepoint_android_vh_sysrq_crash' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_sysrq_crash' visibility='default' filepath='include/trace/hooks/sysrqcrash.h' line='13' column='1' elf-symbol-id='__tracepoint_android_vh_sysrq_crash'/>
-      <var-decl name='__tracepoint_android_vh_thermal_power_cap' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_thermal_power_cap' visibility='default' filepath='include/trace/hooks/thermal.h' line='41' column='1' elf-symbol-id='__tracepoint_android_vh_thermal_power_cap'/>
+      <var-decl name='__tracepoint_android_vh_thermal_power_cap' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_thermal_power_cap' visibility='default' filepath='include/trace/hooks/thermal.h' line='45' column='1' elf-symbol-id='__tracepoint_android_vh_thermal_power_cap'/>
       <var-decl name='__tracepoint_android_vh_thermal_register' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_thermal_register' visibility='default' filepath='include/trace/hooks/thermal.h' line='29' column='1' elf-symbol-id='__tracepoint_android_vh_thermal_register'/>
       <var-decl name='__tracepoint_android_vh_thermal_unregister' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_thermal_unregister' visibility='default' filepath='include/trace/hooks/thermal.h' line='33' column='1' elf-symbol-id='__tracepoint_android_vh_thermal_unregister'/>
       <var-decl name='__tracepoint_android_vh_timer_calc_index' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_timer_calc_index' visibility='default' filepath='include/trace/hooks/timer.h' line='12' column='1' elf-symbol-id='__tracepoint_android_vh_timer_calc_index'/>
@@ -130814,6 +131119,7 @@
       <var-decl name='__tracepoint_unmap' type-id='4ca0c298' mangled-name='__tracepoint_unmap' visibility='default' filepath='include/trace/events/iommu.h' line='109' column='1' elf-symbol-id='__tracepoint_unmap'/>
       <var-decl name='__tracepoint_usb_gadget_connect' type-id='4ca0c298' mangled-name='__tracepoint_usb_gadget_connect' visibility='default' filepath='drivers/usb/gadget/udc/./trace.h' line='119' column='1' elf-symbol-id='__tracepoint_usb_gadget_connect'/>
       <var-decl name='__tracepoint_usb_gadget_disconnect' type-id='4ca0c298' mangled-name='__tracepoint_usb_gadget_disconnect' visibility='default' filepath='drivers/usb/gadget/udc/./trace.h' line='124' column='1' elf-symbol-id='__tracepoint_usb_gadget_disconnect'/>
+      <var-decl name='__tracepoint_wbc_writepage' type-id='4ca0c298' mangled-name='__tracepoint_wbc_writepage' visibility='default' filepath='include/trace/events/writeback.h' line='496' column='1' elf-symbol-id='__tracepoint_wbc_writepage'/>
       <var-decl name='__tracepoint_workqueue_execute_end' type-id='4ca0c298' mangled-name='__tracepoint_workqueue_execute_end' visibility='default' filepath='include/trace/events/workqueue.h' line='108' column='1' elf-symbol-id='__tracepoint_workqueue_execute_end'/>
       <var-decl name='__tracepoint_workqueue_execute_start' type-id='4ca0c298' mangled-name='__tracepoint_workqueue_execute_start' visibility='default' filepath='include/trace/events/workqueue.h' line='82' column='1' elf-symbol-id='__tracepoint_workqueue_execute_start'/>
       <var-decl name='__tracepoint_xdp_exception' type-id='4ca0c298' mangled-name='__tracepoint_xdp_exception' visibility='default' filepath='include/trace/events/xdp.h' line='28' column='1' elf-symbol-id='__tracepoint_xdp_exception'/>
@@ -131006,8 +131312,8 @@
         <parameter type-id='eaa32e2f' name='key' filepath='kernel/sched/wait.c' line='201' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='__warn_printk' mangled-name='__warn_printk' filepath='kernel/panic.c' line='638' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__warn_printk'>
-        <parameter type-id='80f4b756' name='fmt' filepath='kernel/panic.c' line='638' column='1'/>
+      <function-decl name='__warn_printk' mangled-name='__warn_printk' filepath='kernel/panic.c' line='706' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__warn_printk'>
+        <parameter type-id='80f4b756' name='fmt' filepath='kernel/panic.c' line='706' column='1'/>
         <parameter is-variadic='yes'/>
         <return type-id='48b5725f'/>
       </function-decl>
@@ -131298,22 +131604,22 @@
         <parameter type-id='e0ea832a' name='lock' filepath='drivers/media/common/videobuf2/videobuf2-v4l2.c' line='1118' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='access_process_vm' mangled-name='access_process_vm' filepath='mm/memory.c' line='5607' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='access_process_vm'>
-        <parameter type-id='f23e2572' name='tsk' filepath='mm/memory.c' line='5607' column='1'/>
-        <parameter type-id='7359adad' name='addr' filepath='mm/memory.c' line='5607' column='1'/>
-        <parameter type-id='eaa32e2f' name='buf' filepath='mm/memory.c' line='5608' column='1'/>
-        <parameter type-id='95e97e5e' name='len' filepath='mm/memory.c' line='5608' column='1'/>
-        <parameter type-id='f0981eeb' name='gup_flags' filepath='mm/memory.c' line='5608' column='1'/>
+      <function-decl name='access_process_vm' mangled-name='access_process_vm' filepath='mm/memory.c' line='5620' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='access_process_vm'>
+        <parameter type-id='f23e2572' name='tsk' filepath='mm/memory.c' line='5620' column='1'/>
+        <parameter type-id='7359adad' name='addr' filepath='mm/memory.c' line='5620' column='1'/>
+        <parameter type-id='eaa32e2f' name='buf' filepath='mm/memory.c' line='5621' column='1'/>
+        <parameter type-id='95e97e5e' name='len' filepath='mm/memory.c' line='5621' column='1'/>
+        <parameter type-id='f0981eeb' name='gup_flags' filepath='mm/memory.c' line='5621' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
       <function-decl name='ack_all_badblocks' mangled-name='ack_all_badblocks' filepath='block/badblocks.c' line='433' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ack_all_badblocks'>
         <parameter type-id='5760652c' name='bb' filepath='block/badblocks.c' line='433' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='activate_task' mangled-name='activate_task' filepath='kernel/sched/core.c' line='2046' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='activate_task'>
-        <parameter type-id='6ed6b432' name='rq' filepath='kernel/sched/core.c' line='2046' column='1'/>
-        <parameter type-id='f23e2572' name='p' filepath='kernel/sched/core.c' line='2046' column='1'/>
-        <parameter type-id='95e97e5e' name='flags' filepath='kernel/sched/core.c' line='2046' column='1'/>
+      <function-decl name='activate_task' mangled-name='activate_task' filepath='kernel/sched/core.c' line='2043' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='activate_task'>
+        <parameter type-id='6ed6b432' name='rq' filepath='kernel/sched/core.c' line='2043' column='1'/>
+        <parameter type-id='f23e2572' name='p' filepath='kernel/sched/core.c' line='2043' column='1'/>
+        <parameter type-id='95e97e5e' name='flags' filepath='kernel/sched/core.c' line='2043' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
       <function-decl name='add_cpu' mangled-name='add_cpu' filepath='kernel/cpu.c' line='1498' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='add_cpu'>
@@ -131342,11 +131648,11 @@
         <parameter type-id='b47c553a' name='rdy' filepath='drivers/char/random.c' line='1552' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='add_swap_extent' mangled-name='add_swap_extent' filepath='mm/swapfile.c' line='2316' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='add_swap_extent'>
-        <parameter type-id='11e11a61' name='sis' filepath='mm/swapfile.c' line='2316' column='1'/>
-        <parameter type-id='7359adad' name='start_page' filepath='mm/swapfile.c' line='2316' column='1'/>
-        <parameter type-id='7359adad' name='nr_pages' filepath='mm/swapfile.c' line='2317' column='1'/>
-        <parameter type-id='a42536cd' name='start_block' filepath='mm/swapfile.c' line='2317' column='1'/>
+      <function-decl name='add_swap_extent' mangled-name='add_swap_extent' filepath='mm/swapfile.c' line='2317' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='add_swap_extent'>
+        <parameter type-id='11e11a61' name='sis' filepath='mm/swapfile.c' line='2317' column='1'/>
+        <parameter type-id='7359adad' name='start_page' filepath='mm/swapfile.c' line='2317' column='1'/>
+        <parameter type-id='7359adad' name='nr_pages' filepath='mm/swapfile.c' line='2318' column='1'/>
+        <parameter type-id='a42536cd' name='start_block' filepath='mm/swapfile.c' line='2318' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
       <function-decl name='add_timer' mangled-name='add_timer' filepath='kernel/time/timer.c' line='1147' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='add_timer'>
@@ -131401,9 +131707,9 @@
         <parameter type-id='f57039f0' name='mapping' filepath='fs/inode.c' line='381' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='adjust_managed_page_count' mangled-name='adjust_managed_page_count' filepath='mm/page_alloc.c' line='8300' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='adjust_managed_page_count'>
-        <parameter type-id='02f11ed4' name='page' filepath='mm/page_alloc.c' line='8300' column='1'/>
-        <parameter type-id='bd54fe1a' name='count' filepath='mm/page_alloc.c' line='8300' column='1'/>
+      <function-decl name='adjust_managed_page_count' mangled-name='adjust_managed_page_count' filepath='mm/page_alloc.c' line='8303' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='adjust_managed_page_count'>
+        <parameter type-id='02f11ed4' name='page' filepath='mm/page_alloc.c' line='8303' column='1'/>
+        <parameter type-id='bd54fe1a' name='count' filepath='mm/page_alloc.c' line='8303' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
       <function-decl name='aead_register_instance' mangled-name='aead_register_instance' filepath='crypto/aead.c' line='286' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='aead_register_instance'>
@@ -131509,11 +131815,11 @@
         <parameter type-id='80f4b756' name='name' filepath='fs/char_dev.c' line='237' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='alloc_contig_range' mangled-name='alloc_contig_range' filepath='mm/page_alloc.c' line='9246' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='alloc_contig_range'>
-        <parameter type-id='7359adad' name='start' filepath='mm/page_alloc.c' line='9246' column='1'/>
-        <parameter type-id='7359adad' name='end' filepath='mm/page_alloc.c' line='9246' column='1'/>
-        <parameter type-id='f0981eeb' name='migratetype' filepath='mm/page_alloc.c' line='9247' column='1'/>
-        <parameter type-id='3eb7c31c' name='gfp_mask' filepath='mm/page_alloc.c' line='9247' column='1'/>
+      <function-decl name='alloc_contig_range' mangled-name='alloc_contig_range' filepath='mm/page_alloc.c' line='9249' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='alloc_contig_range'>
+        <parameter type-id='7359adad' name='start' filepath='mm/page_alloc.c' line='9249' column='1'/>
+        <parameter type-id='7359adad' name='end' filepath='mm/page_alloc.c' line='9249' column='1'/>
+        <parameter type-id='f0981eeb' name='migratetype' filepath='mm/page_alloc.c' line='9250' column='1'/>
+        <parameter type-id='3eb7c31c' name='gfp_mask' filepath='mm/page_alloc.c' line='9250' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
       <function-decl name='alloc_etherdev_mqs' mangled-name='alloc_etherdev_mqs' filepath='net/ethernet/eth.c' line='390' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='alloc_etherdev_mqs'>
@@ -131528,6 +131834,13 @@
         <parameter type-id='eaa32e2f' name='cookie' filepath='drivers/iommu/io-pgtable.c' line='35' column='1'/>
         <return type-id='bf4bdb64'/>
       </function-decl>
+      <function-decl name='alloc_iova' mangled-name='alloc_iova' filepath='drivers/iommu/iova.c' line='461' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='alloc_iova'>
+        <parameter type-id='0c2c419d' name='iovad' filepath='drivers/iommu/iova.c' line='461' column='1'/>
+        <parameter type-id='7359adad' name='size' filepath='drivers/iommu/iova.c' line='461' column='1'/>
+        <parameter type-id='7359adad' name='limit_pfn' filepath='drivers/iommu/iova.c' line='462' column='1'/>
+        <parameter type-id='b50a4934' name='size_aligned' filepath='drivers/iommu/iova.c' line='463' column='1'/>
+        <return type-id='b2ea0a72'/>
+      </function-decl>
       <function-decl name='alloc_netdev_mqs' mangled-name='alloc_netdev_mqs' filepath='net/core/dev.c' line='10798' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='alloc_netdev_mqs'>
         <parameter type-id='95e97e5e' name='sizeof_priv' filepath='net/core/dev.c' line='10798' column='1'/>
         <parameter type-id='80f4b756' name='name' filepath='net/core/dev.c' line='10798' column='1'/>
@@ -131543,17 +131856,17 @@
         <parameter type-id='b50a4934' name='retry' filepath='fs/buffer.c' line='815' column='1'/>
         <return type-id='c485c22c'/>
       </function-decl>
-      <function-decl name='alloc_pages_exact' mangled-name='alloc_pages_exact' filepath='mm/page_alloc.c' line='5816' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='alloc_pages_exact'>
-        <parameter type-id='b59d7dce' name='size' filepath='mm/page_alloc.c' line='5816' column='1'/>
-        <parameter type-id='3eb7c31c' name='gfp_mask' filepath='mm/page_alloc.c' line='5816' column='1'/>
+      <function-decl name='alloc_pages_exact' mangled-name='alloc_pages_exact' filepath='mm/page_alloc.c' line='5819' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='alloc_pages_exact'>
+        <parameter type-id='b59d7dce' name='size' filepath='mm/page_alloc.c' line='5819' column='1'/>
+        <parameter type-id='3eb7c31c' name='gfp_mask' filepath='mm/page_alloc.c' line='5819' column='1'/>
         <return type-id='eaa32e2f'/>
       </function-decl>
-      <function-decl name='alloc_skb_with_frags' mangled-name='alloc_skb_with_frags' filepath='net/core/skbuff.c' line='6121' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='alloc_skb_with_frags'>
-        <parameter type-id='7359adad' name='header_len' filepath='net/core/skbuff.c' line='6121' column='1'/>
-        <parameter type-id='7359adad' name='data_len' filepath='net/core/skbuff.c' line='6122' column='1'/>
-        <parameter type-id='95e97e5e' name='max_page_order' filepath='net/core/skbuff.c' line='6123' column='1'/>
-        <parameter type-id='7292109c' name='errcode' filepath='net/core/skbuff.c' line='6124' column='1'/>
-        <parameter type-id='3eb7c31c' name='gfp_mask' filepath='net/core/skbuff.c' line='6125' column='1'/>
+      <function-decl name='alloc_skb_with_frags' mangled-name='alloc_skb_with_frags' filepath='net/core/skbuff.c' line='6120' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='alloc_skb_with_frags'>
+        <parameter type-id='7359adad' name='header_len' filepath='net/core/skbuff.c' line='6120' column='1'/>
+        <parameter type-id='7359adad' name='data_len' filepath='net/core/skbuff.c' line='6121' column='1'/>
+        <parameter type-id='95e97e5e' name='max_page_order' filepath='net/core/skbuff.c' line='6122' column='1'/>
+        <parameter type-id='7292109c' name='errcode' filepath='net/core/skbuff.c' line='6123' column='1'/>
+        <parameter type-id='3eb7c31c' name='gfp_mask' filepath='net/core/skbuff.c' line='6124' column='1'/>
         <return type-id='0fbf3cfd'/>
       </function-decl>
       <function-decl name='alloc_swapdev_block' mangled-name='alloc_swapdev_block' filepath='kernel/power/swap.c' line='177' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='alloc_swapdev_block'>
@@ -131585,9 +131898,9 @@
         <parameter type-id='80f4b756' name='name' filepath='drivers/amba/bus.c' line='797' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='android_debug_for_each_module' mangled-name='android_debug_for_each_module' filepath='kernel/module.c' line='4836' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='android_debug_for_each_module'>
-        <parameter type-id='841286fc' name='fn' filepath='kernel/module.c' line='4836' column='1'/>
-        <parameter type-id='eaa32e2f' name='data' filepath='kernel/module.c' line='4837' column='1'/>
+      <function-decl name='android_debug_for_each_module' mangled-name='android_debug_for_each_module' filepath='kernel/module.c' line='4852' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='android_debug_for_each_module'>
+        <parameter type-id='841286fc' name='fn' filepath='kernel/module.c' line='4852' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='kernel/module.c' line='4853' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
       <function-decl name='android_debug_per_cpu_symbol' mangled-name='android_debug_per_cpu_symbol' filepath='drivers/android/android_debug_symbols.c' line='121' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='android_debug_per_cpu_symbol'>
@@ -131697,8 +132010,8 @@
         <parameter type-id='eaa32e2f' name='key' filepath='kernel/sched/wait.c' line='419' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='available_idle_cpu' mangled-name='available_idle_cpu' filepath='kernel/sched/core.c' line='7272' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='available_idle_cpu'>
-        <parameter type-id='95e97e5e' name='cpu' filepath='kernel/sched/core.c' line='7272' column='1'/>
+      <function-decl name='available_idle_cpu' mangled-name='available_idle_cpu' filepath='kernel/sched/core.c' line='7239' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='available_idle_cpu'>
+        <parameter type-id='95e97e5e' name='cpu' filepath='kernel/sched/core.c' line='7239' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
       <function-decl name='backlight_device_get_by_type' mangled-name='backlight_device_get_by_type' filepath='drivers/video/backlight/backlight.c' line='468' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='backlight_device_get_by_type'>
@@ -131761,7 +132074,7 @@
         <parameter type-id='f57039f0' name='mapping' filepath='mm/page-writeback.c' line='1878' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <var-decl name='balance_push_callback' type-id='e3d8ce29' mangled-name='balance_push_callback' visibility='default' filepath='kernel/sched/core.c' line='4832' column='1' elf-symbol-id='balance_push_callback'/>
+      <var-decl name='balance_push_callback' type-id='e3d8ce29' mangled-name='balance_push_callback' visibility='default' filepath='kernel/sched/core.c' line='4800' column='1' elf-symbol-id='balance_push_callback'/>
       <var-decl name='balloon_aops' type-id='38ce7f2c' mangled-name='balloon_aops' visibility='default' filepath='mm/balloon_compaction.c' line='253' column='1' elf-symbol-id='balloon_aops'/>
       <function-decl name='balloon_page_alloc' mangled-name='balloon_page_alloc' filepath='mm/balloon_compaction.c' line='124' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='balloon_page_alloc'>
         <return type-id='02f11ed4'/>
@@ -131813,6 +132126,10 @@
         <parameter type-id='95e97e5e' name='node_id' filepath='mm/backing-dev.c' line='799' column='1'/>
         <return type-id='ef4fae1b'/>
       </function-decl>
+      <function-decl name='bdi_dev_name' mangled-name='bdi_dev_name' filepath='mm/backing-dev.c' line='980' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bdi_dev_name'>
+        <parameter type-id='ef4fae1b' name='bdi' filepath='mm/backing-dev.c' line='980' column='1'/>
+        <return type-id='80f4b756'/>
+      </function-decl>
       <function-decl name='bdi_put' mangled-name='bdi_put' filepath='mm/backing-dev.c' line='974' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bdi_put'>
         <parameter type-id='ef4fae1b' name='bdi' filepath='mm/backing-dev.c' line='974' column='1'/>
         <return type-id='48b5725f'/>
@@ -131854,13 +132171,13 @@
         <parameter type-id='38b1e3a0' name='bs' filepath='block/bio.c' line='435' column='1'/>
         <return type-id='fb55efa1'/>
       </function-decl>
-      <function-decl name='bio_associate_blkg' mangled-name='bio_associate_blkg' filepath='block/blk-cgroup.c' line='1865' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bio_associate_blkg'>
-        <parameter type-id='fb55efa1' name='bio' filepath='block/blk-cgroup.c' line='1865' column='1'/>
+      <function-decl name='bio_associate_blkg' mangled-name='bio_associate_blkg' filepath='block/blk-cgroup.c' line='1869' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bio_associate_blkg'>
+        <parameter type-id='fb55efa1' name='bio' filepath='block/blk-cgroup.c' line='1869' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='bio_associate_blkg_from_css' mangled-name='bio_associate_blkg_from_css' filepath='block/blk-cgroup.c' line='1841' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bio_associate_blkg_from_css'>
-        <parameter type-id='fb55efa1' name='bio' filepath='block/blk-cgroup.c' line='1841' column='1'/>
-        <parameter type-id='cfff5953' name='css' filepath='block/blk-cgroup.c' line='1842' column='1'/>
+      <function-decl name='bio_associate_blkg_from_css' mangled-name='bio_associate_blkg_from_css' filepath='block/blk-cgroup.c' line='1845' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bio_associate_blkg_from_css'>
+        <parameter type-id='fb55efa1' name='bio' filepath='block/blk-cgroup.c' line='1845' column='1'/>
+        <parameter type-id='cfff5953' name='css' filepath='block/blk-cgroup.c' line='1846' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
       <function-decl name='bio_chain' mangled-name='bio_chain' filepath='block/bio.c' line='338' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bio_chain'>
@@ -131868,9 +132185,9 @@
         <parameter type-id='fb55efa1' name='parent' filepath='block/bio.c' line='338' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='bio_clone_blkg_association' mangled-name='bio_clone_blkg_association' filepath='block/blk-cgroup.c' line='1887' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bio_clone_blkg_association'>
-        <parameter type-id='fb55efa1' name='dst' filepath='block/blk-cgroup.c' line='1887' column='1'/>
-        <parameter type-id='fb55efa1' name='src' filepath='block/blk-cgroup.c' line='1887' column='1'/>
+      <function-decl name='bio_clone_blkg_association' mangled-name='bio_clone_blkg_association' filepath='block/blk-cgroup.c' line='1891' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bio_clone_blkg_association'>
+        <parameter type-id='fb55efa1' name='dst' filepath='block/blk-cgroup.c' line='1891' column='1'/>
+        <parameter type-id='fb55efa1' name='src' filepath='block/blk-cgroup.c' line='1891' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
       <function-decl name='bio_clone_fast' mangled-name='bio_clone_fast' filepath='block/bio.c' line='749' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bio_clone_fast'>
@@ -131886,10 +132203,10 @@
         <parameter type-id='3eb7c31c' name='gfp_mask' filepath='block/blk-crypto.c' line='82' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='bio_end_io_acct_remapped' mangled-name='bio_end_io_acct_remapped' filepath='block/blk-core.c' line='1358' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bio_end_io_acct_remapped'>
-        <parameter type-id='fb55efa1' name='bio' filepath='block/blk-core.c' line='1358' column='1'/>
-        <parameter type-id='7359adad' name='start_time' filepath='block/blk-core.c' line='1358' column='1'/>
-        <parameter type-id='b88dd945' name='orig_bdev' filepath='block/blk-core.c' line='1359' column='1'/>
+      <function-decl name='bio_end_io_acct_remapped' mangled-name='bio_end_io_acct_remapped' filepath='block/blk-core.c' line='1354' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bio_end_io_acct_remapped'>
+        <parameter type-id='fb55efa1' name='bio' filepath='block/blk-core.c' line='1354' column='1'/>
+        <parameter type-id='7359adad' name='start_time' filepath='block/blk-core.c' line='1354' column='1'/>
+        <parameter type-id='b88dd945' name='orig_bdev' filepath='block/blk-core.c' line='1355' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
       <function-decl name='bio_endio' mangled-name='bio_endio' filepath='block/bio.c' line='1447' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bio_endio'>
@@ -131913,8 +132230,8 @@
         <parameter type-id='38b1e3a0' name='bs' filepath='block/bio.c' line='1498' column='1'/>
         <return type-id='fb55efa1'/>
       </function-decl>
-      <function-decl name='bio_start_io_acct' mangled-name='bio_start_io_acct' filepath='block/blk-core.c' line='1330' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bio_start_io_acct'>
-        <parameter type-id='fb55efa1' name='bio' filepath='block/blk-core.c' line='1330' column='1'/>
+      <function-decl name='bio_start_io_acct' mangled-name='bio_start_io_acct' filepath='block/blk-core.c' line='1326' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bio_start_io_acct'>
+        <parameter type-id='fb55efa1' name='bio' filepath='block/blk-core.c' line='1326' column='1'/>
         <return type-id='7359adad'/>
       </function-decl>
       <function-decl name='bioset_exit' mangled-name='bioset_exit' filepath='block/bio.c' line='1571' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bioset_exit'>
@@ -132016,11 +132333,11 @@
         <parameter type-id='3eb7c31c' name='flags' filepath='lib/bitmap.c' line='1395' column='1'/>
         <return type-id='1d2c2b85'/>
       </function-decl>
-      <function-decl name='blk_bio_list_merge' mangled-name='blk_bio_list_merge' filepath='block/blk-merge.c' line='1092' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_bio_list_merge'>
-        <parameter type-id='e7d2a5fc' name='q' filepath='block/blk-merge.c' line='1092' column='1'/>
-        <parameter type-id='e84b031a' name='list' filepath='block/blk-merge.c' line='1092' column='1'/>
-        <parameter type-id='fb55efa1' name='bio' filepath='block/blk-merge.c' line='1093' column='1'/>
-        <parameter type-id='f0981eeb' name='nr_segs' filepath='block/blk-merge.c' line='1093' column='1'/>
+      <function-decl name='blk_bio_list_merge' mangled-name='blk_bio_list_merge' filepath='block/blk-merge.c' line='1104' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_bio_list_merge'>
+        <parameter type-id='e7d2a5fc' name='q' filepath='block/blk-merge.c' line='1104' column='1'/>
+        <parameter type-id='e84b031a' name='list' filepath='block/blk-merge.c' line='1104' column='1'/>
+        <parameter type-id='fb55efa1' name='bio' filepath='block/blk-merge.c' line='1105' column='1'/>
+        <parameter type-id='f0981eeb' name='nr_segs' filepath='block/blk-merge.c' line='1105' column='1'/>
         <return type-id='b50a4934'/>
       </function-decl>
       <function-decl name='blk_cleanup_disk' mangled-name='blk_cleanup_disk' filepath='block/genhd.c' line='1377' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_cleanup_disk'>
@@ -132044,8 +132361,8 @@
         <parameter type-id='5afdaa66' name='done' filepath='block/blk-exec.c' line='48' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='blk_finish_plug' mangled-name='blk_finish_plug' filepath='block/blk-core.c' line='1753' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_finish_plug'>
-        <parameter type-id='39944481' name='plug' filepath='block/blk-core.c' line='1753' column='1'/>
+      <function-decl name='blk_finish_plug' mangled-name='blk_finish_plug' filepath='block/blk-core.c' line='1749' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_finish_plug'>
+        <parameter type-id='39944481' name='plug' filepath='block/blk-core.c' line='1749' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
       <function-decl name='blk_freeze_queue_start' mangled-name='blk_freeze_queue_start' filepath='block/blk-mq.c' line='137' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_freeze_queue_start'>
@@ -132101,15 +132418,15 @@
         <parameter type-id='f0981eeb' name='hctx_idx' filepath='block/blk-mq.c' line='441' column='1'/>
         <return type-id='3dad1a48'/>
       </function-decl>
-      <function-decl name='blk_mq_alloc_sq_tag_set' mangled-name='blk_mq_alloc_sq_tag_set' filepath='block/blk-mq.c' line='3575' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_mq_alloc_sq_tag_set'>
-        <parameter type-id='cc26d15f' name='set' filepath='block/blk-mq.c' line='3575' column='1'/>
-        <parameter type-id='e1962c5d' name='ops' filepath='block/blk-mq.c' line='3576' column='1'/>
-        <parameter type-id='f0981eeb' name='queue_depth' filepath='block/blk-mq.c' line='3576' column='1'/>
-        <parameter type-id='f0981eeb' name='set_flags' filepath='block/blk-mq.c' line='3577' column='1'/>
+      <function-decl name='blk_mq_alloc_sq_tag_set' mangled-name='blk_mq_alloc_sq_tag_set' filepath='block/blk-mq.c' line='3577' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_mq_alloc_sq_tag_set'>
+        <parameter type-id='cc26d15f' name='set' filepath='block/blk-mq.c' line='3577' column='1'/>
+        <parameter type-id='e1962c5d' name='ops' filepath='block/blk-mq.c' line='3578' column='1'/>
+        <parameter type-id='f0981eeb' name='queue_depth' filepath='block/blk-mq.c' line='3578' column='1'/>
+        <parameter type-id='f0981eeb' name='set_flags' filepath='block/blk-mq.c' line='3579' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='blk_mq_alloc_tag_set' mangled-name='blk_mq_alloc_tag_set' filepath='block/blk-mq.c' line='3478' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_mq_alloc_tag_set'>
-        <parameter type-id='cc26d15f' name='set' filepath='block/blk-mq.c' line='3478' column='1'/>
+      <function-decl name='blk_mq_alloc_tag_set' mangled-name='blk_mq_alloc_tag_set' filepath='block/blk-mq.c' line='3480' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_mq_alloc_tag_set'>
+        <parameter type-id='cc26d15f' name='set' filepath='block/blk-mq.c' line='3480' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
       <function-decl name='blk_mq_complete_request' mangled-name='blk_mq_complete_request' filepath='block/blk-mq.c' line='689' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_mq_complete_request'>
@@ -132139,8 +132456,8 @@
         <parameter type-id='3dad1a48' name='rq' filepath='block/blk-mq.c' line='519' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='blk_mq_free_tag_set' mangled-name='blk_mq_free_tag_set' filepath='block/blk-mq.c' line='3590' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_mq_free_tag_set'>
-        <parameter type-id='cc26d15f' name='set' filepath='block/blk-mq.c' line='3590' column='1'/>
+      <function-decl name='blk_mq_free_tag_set' mangled-name='blk_mq_free_tag_set' filepath='block/blk-mq.c' line='3592' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_mq_free_tag_set'>
+        <parameter type-id='cc26d15f' name='set' filepath='block/blk-mq.c' line='3592' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
       <function-decl name='blk_mq_freeze_queue' mangled-name='blk_mq_freeze_queue' filepath='block/blk-mq.c' line='183' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_mq_freeze_queue'>
@@ -132156,8 +132473,8 @@
         <parameter type-id='7359adad' name='timeout' filepath='block/blk-mq.c' line='158' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='blk_mq_init_queue' mangled-name='blk_mq_init_queue' filepath='block/blk-mq.c' line='3141' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_mq_init_queue'>
-        <parameter type-id='cc26d15f' name='set' filepath='block/blk-mq.c' line='3141' column='1'/>
+      <function-decl name='blk_mq_init_queue' mangled-name='blk_mq_init_queue' filepath='block/blk-mq.c' line='3143' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_mq_init_queue'>
+        <parameter type-id='cc26d15f' name='set' filepath='block/blk-mq.c' line='3143' column='1'/>
         <return type-id='e7d2a5fc'/>
       </function-decl>
       <function-decl name='blk_mq_map_queues' mangled-name='blk_mq_map_queues' filepath='block/blk-mq-cpumap.c' line='35' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_mq_map_queues'>
@@ -132183,8 +132500,8 @@
         <parameter type-id='b50a4934' name='kick_requeue_list' filepath='block/blk-mq.c' line='764' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='blk_mq_rq_cpu' mangled-name='blk_mq_rq_cpu' filepath='block/blk-mq.c' line='4021' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_mq_rq_cpu'>
-        <parameter type-id='3dad1a48' name='rq' filepath='block/blk-mq.c' line='4021' column='1'/>
+      <function-decl name='blk_mq_rq_cpu' mangled-name='blk_mq_rq_cpu' filepath='block/blk-mq.c' line='4023' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_mq_rq_cpu'>
+        <parameter type-id='3dad1a48' name='rq' filepath='block/blk-mq.c' line='4023' column='1'/>
         <return type-id='f0981eeb'/>
       </function-decl>
       <function-decl name='blk_mq_run_hw_queue' mangled-name='blk_mq_run_hw_queue' filepath='block/blk-mq.c' line='1608' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_mq_run_hw_queue'>
@@ -132203,11 +132520,11 @@
         <parameter type-id='e84b031a' name='free' filepath='block/blk-mq-sched.c' line='410' column='1'/>
         <return type-id='b50a4934'/>
       </function-decl>
-      <function-decl name='blk_mq_sched_try_merge' mangled-name='blk_mq_sched_try_merge' filepath='block/blk-merge.c' line='1117' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_mq_sched_try_merge'>
-        <parameter type-id='e7d2a5fc' name='q' filepath='block/blk-merge.c' line='1117' column='1'/>
-        <parameter type-id='fb55efa1' name='bio' filepath='block/blk-merge.c' line='1117' column='1'/>
-        <parameter type-id='f0981eeb' name='nr_segs' filepath='block/blk-merge.c' line='1118' column='1'/>
-        <parameter type-id='79808846' name='merged_request' filepath='block/blk-merge.c' line='1118' column='1'/>
+      <function-decl name='blk_mq_sched_try_merge' mangled-name='blk_mq_sched_try_merge' filepath='block/blk-merge.c' line='1129' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_mq_sched_try_merge'>
+        <parameter type-id='e7d2a5fc' name='q' filepath='block/blk-merge.c' line='1129' column='1'/>
+        <parameter type-id='fb55efa1' name='bio' filepath='block/blk-merge.c' line='1129' column='1'/>
+        <parameter type-id='f0981eeb' name='nr_segs' filepath='block/blk-merge.c' line='1130' column='1'/>
+        <parameter type-id='79808846' name='merged_request' filepath='block/blk-merge.c' line='1130' column='1'/>
         <return type-id='b50a4934'/>
       </function-decl>
       <function-decl name='blk_mq_start_request' mangled-name='blk_mq_start_request' filepath='block/blk-mq.c' line='724' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_mq_start_request'>
@@ -132246,9 +132563,9 @@
         <parameter type-id='e7d2a5fc' name='q' filepath='block/blk-mq.c' line='258' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='blk_mq_update_nr_hw_queues' mangled-name='blk_mq_update_nr_hw_queues' filepath='block/blk-mq.c' line='3802' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_mq_update_nr_hw_queues'>
-        <parameter type-id='cc26d15f' name='set' filepath='block/blk-mq.c' line='3802' column='1'/>
-        <parameter type-id='95e97e5e' name='nr_hw_queues' filepath='block/blk-mq.c' line='3802' column='1'/>
+      <function-decl name='blk_mq_update_nr_hw_queues' mangled-name='blk_mq_update_nr_hw_queues' filepath='block/blk-mq.c' line='3804' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_mq_update_nr_hw_queues'>
+        <parameter type-id='cc26d15f' name='set' filepath='block/blk-mq.c' line='3804' column='1'/>
+        <parameter type-id='95e97e5e' name='nr_hw_queues' filepath='block/blk-mq.c' line='3804' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
       <function-decl name='blk_mq_virtio_map_queues' mangled-name='blk_mq_virtio_map_queues' filepath='block/blk-mq-virtio.c' line='24' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_mq_virtio_map_queues'>
@@ -132369,8 +132686,8 @@
         <parameter type-id='f0981eeb' name='timeout' filepath='block/blk-settings.c' line='21' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='blk_queue_split' mangled-name='blk_queue_split' filepath='block/blk-merge.c' line='367' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_queue_split'>
-        <parameter type-id='334817d1' name='bio' filepath='block/blk-merge.c' line='367' column='1'/>
+      <function-decl name='blk_queue_split' mangled-name='blk_queue_split' filepath='block/blk-merge.c' line='379' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_queue_split'>
+        <parameter type-id='334817d1' name='bio' filepath='block/blk-merge.c' line='379' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
       <function-decl name='blk_queue_update_dma_alignment' mangled-name='blk_queue_update_dma_alignment' filepath='block/blk-settings.c' line='762' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_queue_update_dma_alignment'>
@@ -132427,8 +132744,8 @@
         <parameter type-id='7604ff1d' name='lim' filepath='block/blk-settings.c' line='71' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='blk_start_plug' mangled-name='blk_start_plug' filepath='block/blk-core.c' line='1669' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_start_plug'>
-        <parameter type-id='39944481' name='plug' filepath='block/blk-core.c' line='1669' column='1'/>
+      <function-decl name='blk_start_plug' mangled-name='blk_start_plug' filepath='block/blk-core.c' line='1665' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_start_plug'>
+        <parameter type-id='39944481' name='plug' filepath='block/blk-core.c' line='1665' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
       <function-decl name='blk_stat_enable_accounting' mangled-name='blk_stat_enable_accounting' filepath='block/blk-stat.c' line='187' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_stat_enable_accounting'>
@@ -132443,10 +132760,10 @@
         <parameter type-id='e7d2a5fc' name='q' filepath='block/blk-core.c' line='299' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='blk_update_request' mangled-name='blk_update_request' filepath='block/blk-core.c' line='1415' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_update_request'>
-        <parameter type-id='3dad1a48' name='req' filepath='block/blk-core.c' line='1415' column='1'/>
-        <parameter type-id='f4e2facd' name='error' filepath='block/blk-core.c' line='1415' column='1'/>
-        <parameter type-id='f0981eeb' name='nr_bytes' filepath='block/blk-core.c' line='1416' column='1'/>
+      <function-decl name='blk_update_request' mangled-name='blk_update_request' filepath='block/blk-core.c' line='1411' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_update_request'>
+        <parameter type-id='3dad1a48' name='req' filepath='block/blk-core.c' line='1411' column='1'/>
+        <parameter type-id='f4e2facd' name='error' filepath='block/blk-core.c' line='1411' column='1'/>
+        <parameter type-id='f0981eeb' name='nr_bytes' filepath='block/blk-core.c' line='1412' column='1'/>
         <return type-id='b50a4934'/>
       </function-decl>
       <function-decl name='blkcg_activate_policy' mangled-name='blkcg_activate_policy' filepath='block/blk-cgroup.c' line='1300' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blkcg_activate_policy'>
@@ -132454,17 +132771,26 @@
         <parameter type-id='0d87d4f6' name='pol' filepath='block/blk-cgroup.c' line='1301' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='blkcg_deactivate_policy' mangled-name='blkcg_deactivate_policy' filepath='block/blk-cgroup.c' line='1403' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blkcg_deactivate_policy'>
-        <parameter type-id='e7d2a5fc' name='q' filepath='block/blk-cgroup.c' line='1403' column='1'/>
-        <parameter type-id='0d87d4f6' name='pol' filepath='block/blk-cgroup.c' line='1404' column='1'/>
+      <function-decl name='blkcg_deactivate_policy' mangled-name='blkcg_deactivate_policy' filepath='block/blk-cgroup.c' line='1407' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blkcg_deactivate_policy'>
+        <parameter type-id='e7d2a5fc' name='q' filepath='block/blk-cgroup.c' line='1407' column='1'/>
+        <parameter type-id='0d87d4f6' name='pol' filepath='block/blk-cgroup.c' line='1408' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='blkcg_policy_register' mangled-name='blkcg_policy_register' filepath='block/blk-cgroup.c' line='1445' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blkcg_policy_register'>
-        <parameter type-id='b31a5ea1' name='pol' filepath='block/blk-cgroup.c' line='1445' column='1'/>
+      <function-decl name='blkcg_policy_register' mangled-name='blkcg_policy_register' filepath='block/blk-cgroup.c' line='1449' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blkcg_policy_register'>
+        <parameter type-id='b31a5ea1' name='pol' filepath='block/blk-cgroup.c' line='1449' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='blkcg_policy_unregister' mangled-name='blkcg_policy_unregister' filepath='block/blk-cgroup.c' line='1524' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blkcg_policy_unregister'>
-        <parameter type-id='b31a5ea1' name='pol' filepath='block/blk-cgroup.c' line='1524' column='1'/>
+      <function-decl name='blkcg_policy_unregister' mangled-name='blkcg_policy_unregister' filepath='block/blk-cgroup.c' line='1528' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blkcg_policy_unregister'>
+        <parameter type-id='b31a5ea1' name='pol' filepath='block/blk-cgroup.c' line='1528' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='blkcg_print_blkgs' mangled-name='blkcg_print_blkgs' filepath='block/blk-cgroup.c' line='515' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blkcg_print_blkgs'>
+        <parameter type-id='f8dc9def' name='sf' filepath='block/blk-cgroup.c' line='515' column='1'/>
+        <parameter type-id='11bff950' name='blkcg' filepath='block/blk-cgroup.c' line='515' column='1'/>
+        <parameter type-id='c2d8e88b' name='prfill' filepath='block/blk-cgroup.c' line='516' column='1'/>
+        <parameter type-id='0d87d4f6' name='pol' filepath='block/blk-cgroup.c' line='518' column='1'/>
+        <parameter type-id='95e97e5e' name='data' filepath='block/blk-cgroup.c' line='518' column='1'/>
+        <parameter type-id='b50a4934' name='show_total' filepath='block/blk-cgroup.c' line='519' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
       <var-decl name='blkcg_root' type-id='19b26952' mangled-name='blkcg_root' visibility='default' filepath='block/blk-cgroup.c' line='46' column='1' elf-symbol-id='blkcg_root'/>
@@ -132512,12 +132838,45 @@
         <parameter type-id='2665334e' name='mode' filepath='block/bdev.c' line='898' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
+      <function-decl name='blkg_conf_finish' mangled-name='blkg_conf_finish' filepath='block/blk-cgroup.c' line='749' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blkg_conf_finish'>
+        <parameter type-id='c6db53f8' name='ctx' filepath='block/blk-cgroup.c' line='749' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='blkg_conf_prep' mangled-name='blkg_conf_prep' filepath='block/blk-cgroup.c' line='621' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blkg_conf_prep'>
+        <parameter type-id='11bff950' name='blkcg' filepath='block/blk-cgroup.c' line='621' column='1'/>
+        <parameter type-id='0d87d4f6' name='pol' filepath='block/blk-cgroup.c' line='621' column='1'/>
+        <parameter type-id='26a90f95' name='input' filepath='block/blk-cgroup.c' line='622' column='1'/>
+        <parameter type-id='c6db53f8' name='ctx' filepath='block/blk-cgroup.c' line='622' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
       <function-decl name='blkg_lookup_slowpath' mangled-name='blkg_lookup_slowpath' filepath='block/blk-cgroup.c' line='204' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blkg_lookup_slowpath'>
         <parameter type-id='11bff950' name='blkcg' filepath='block/blk-cgroup.c' line='204' column='1'/>
         <parameter type-id='e7d2a5fc' name='q' filepath='block/blk-cgroup.c' line='205' column='1'/>
         <parameter type-id='b50a4934' name='update_hint' filepath='block/blk-cgroup.c' line='205' column='1'/>
         <return type-id='1146dea3'/>
       </function-decl>
+      <function-decl name='blkg_prfill_rwstat' mangled-name='blkg_prfill_rwstat' filepath='block/blk-cgroup-rwstat.c' line='79' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blkg_prfill_rwstat'>
+        <parameter type-id='f8dc9def' name='sf' filepath='block/blk-cgroup-rwstat.c' line='79' column='1'/>
+        <parameter type-id='3213e875' name='pd' filepath='block/blk-cgroup-rwstat.c' line='79' column='1'/>
+        <parameter type-id='95e97e5e' name='off' filepath='block/blk-cgroup-rwstat.c' line='80' column='1'/>
+        <return type-id='91ce1af9'/>
+      </function-decl>
+      <function-decl name='blkg_rwstat_exit' mangled-name='blkg_rwstat_exit' filepath='block/blk-cgroup-rwstat.c' line='25' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blkg_rwstat_exit'>
+        <parameter type-id='cbc1e303' name='rwstat' filepath='block/blk-cgroup-rwstat.c' line='25' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='blkg_rwstat_init' mangled-name='blkg_rwstat_init' filepath='block/blk-cgroup-rwstat.c' line='8' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blkg_rwstat_init'>
+        <parameter type-id='cbc1e303' name='rwstat' filepath='block/blk-cgroup-rwstat.c' line='8' column='1'/>
+        <parameter type-id='3eb7c31c' name='gfp' filepath='block/blk-cgroup-rwstat.c' line='8' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='blkg_rwstat_recursive_sum' mangled-name='blkg_rwstat_recursive_sum' filepath='block/blk-cgroup-rwstat.c' line='103' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blkg_rwstat_recursive_sum'>
+        <parameter type-id='1146dea3' name='blkg' filepath='block/blk-cgroup-rwstat.c' line='103' column='1'/>
+        <parameter type-id='b31a5ea1' name='pol' filepath='block/blk-cgroup-rwstat.c' line='103' column='1'/>
+        <parameter type-id='95e97e5e' name='off' filepath='block/blk-cgroup-rwstat.c' line='104' column='1'/>
+        <parameter type-id='7806f534' name='sum' filepath='block/blk-cgroup-rwstat.c' line='104' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
       <function-decl name='block_invalidatepage' mangled-name='block_invalidatepage' filepath='fs/buffer.c' line='1502' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='block_invalidatepage'>
         <parameter type-id='02f11ed4' name='page' filepath='fs/buffer.c' line='1502' column='1'/>
         <parameter type-id='f0981eeb' name='offset' filepath='fs/buffer.c' line='1502' column='1'/>
@@ -132583,16 +132942,16 @@
         <parameter type-id='5c39fc92' name='block' filepath='fs/inode.c' line='1709' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='bpf_dispatcher_xdp_func' mangled-name='bpf_dispatcher_xdp_func' filepath='net/core/filter.c' line='10683' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bpf_dispatcher_xdp_func'>
-        <parameter type-id='eaa32e2f' name='ctx' filepath='net/core/filter.c' line='10683' column='1'/>
-        <parameter type-id='acada613' name='insnsi' filepath='net/core/filter.c' line='10683' column='1'/>
-        <parameter type-id='531a7450' name='bpf_func' filepath='net/core/filter.c' line='10683' column='1'/>
+      <function-decl name='bpf_dispatcher_xdp_func' mangled-name='bpf_dispatcher_xdp_func' filepath='net/core/filter.c' line='10686' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bpf_dispatcher_xdp_func'>
+        <parameter type-id='eaa32e2f' name='ctx' filepath='net/core/filter.c' line='10686' column='1'/>
+        <parameter type-id='acada613' name='insnsi' filepath='net/core/filter.c' line='10686' column='1'/>
+        <parameter type-id='531a7450' name='bpf_func' filepath='net/core/filter.c' line='10686' column='1'/>
         <return type-id='f0981eeb'/>
       </function-decl>
-      <var-decl name='bpf_master_redirect_enabled_key' type-id='237c0d27' mangled-name='bpf_master_redirect_enabled_key' visibility='default' filepath='net/core/filter.c' line='3949' column='1' elf-symbol-id='bpf_master_redirect_enabled_key'/>
-      <function-decl name='bpf_prog_add' mangled-name='bpf_prog_add' filepath='kernel/bpf/syscall.c' line='1924' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bpf_prog_add'>
-        <parameter type-id='bdcee7ae' name='prog' filepath='kernel/bpf/syscall.c' line='1924' column='1'/>
-        <parameter type-id='95e97e5e' name='i' filepath='kernel/bpf/syscall.c' line='1924' column='1'/>
+      <var-decl name='bpf_master_redirect_enabled_key' type-id='237c0d27' mangled-name='bpf_master_redirect_enabled_key' visibility='default' filepath='net/core/filter.c' line='3952' column='1' elf-symbol-id='bpf_master_redirect_enabled_key'/>
+      <function-decl name='bpf_prog_add' mangled-name='bpf_prog_add' filepath='kernel/bpf/syscall.c' line='1922' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bpf_prog_add'>
+        <parameter type-id='bdcee7ae' name='prog' filepath='kernel/bpf/syscall.c' line='1922' column='1'/>
+        <parameter type-id='95e97e5e' name='i' filepath='kernel/bpf/syscall.c' line='1922' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
       <function-decl name='bpf_prog_create' mangled-name='bpf_prog_create' filepath='net/core/filter.c' line='1359' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bpf_prog_create'>
@@ -132604,22 +132963,97 @@
         <parameter type-id='bdcee7ae' name='fp' filepath='net/core/filter.c' line='1447' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='bpf_prog_put' mangled-name='bpf_prog_put' filepath='kernel/bpf/syscall.c' line='1815' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bpf_prog_put'>
-        <parameter type-id='bdcee7ae' name='prog' filepath='kernel/bpf/syscall.c' line='1815' column='1'/>
+      <function-decl name='bpf_prog_put' mangled-name='bpf_prog_put' filepath='kernel/bpf/syscall.c' line='1813' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bpf_prog_put'>
+        <parameter type-id='bdcee7ae' name='prog' filepath='kernel/bpf/syscall.c' line='1813' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='bpf_prog_sub' mangled-name='bpf_prog_sub' filepath='kernel/bpf/syscall.c' line='1930' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bpf_prog_sub'>
-        <parameter type-id='bdcee7ae' name='prog' filepath='kernel/bpf/syscall.c' line='1930' column='1'/>
-        <parameter type-id='95e97e5e' name='i' filepath='kernel/bpf/syscall.c' line='1930' column='1'/>
+      <function-decl name='bpf_prog_sub' mangled-name='bpf_prog_sub' filepath='kernel/bpf/syscall.c' line='1928' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bpf_prog_sub'>
+        <parameter type-id='bdcee7ae' name='prog' filepath='kernel/bpf/syscall.c' line='1928' column='1'/>
+        <parameter type-id='95e97e5e' name='i' filepath='kernel/bpf/syscall.c' line='1928' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
       <var-decl name='bpf_stats_enabled_key' type-id='237c0d27' mangled-name='bpf_stats_enabled_key' visibility='default' filepath='kernel/bpf/core.c' line='2445' column='1' elf-symbol-id='bpf_stats_enabled_key'/>
-      <function-decl name='bpf_trace_run1' mangled-name='bpf_trace_run1' filepath='kernel/trace/bpf_trace.c' line='1901' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bpf_trace_run1'>
-        <parameter type-id='bdcee7ae' name='prog' filepath='kernel/trace/bpf_trace.c' line='1901' column='1'/>
-        <parameter type-id='91ce1af9' name='arg0' filepath='kernel/trace/bpf_trace.c' line='1901' column='1'/>
+      <function-decl name='bpf_trace_run1' mangled-name='bpf_trace_run1' filepath='kernel/trace/bpf_trace.c' line='1905' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bpf_trace_run1'>
+        <parameter type-id='bdcee7ae' name='prog' filepath='kernel/trace/bpf_trace.c' line='1905' column='1'/>
+        <parameter type-id='91ce1af9' name='arg0' filepath='kernel/trace/bpf_trace.c' line='1905' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='bpf_trace_run10' mangled-name='bpf_trace_run10' filepath='kernel/trace/bpf_trace.c' line='1910' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bpf_trace_run10'>
+      <function-decl name='bpf_trace_run10' mangled-name='bpf_trace_run10' filepath='kernel/trace/bpf_trace.c' line='1914' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bpf_trace_run10'>
+        <parameter type-id='bdcee7ae' name='prog' filepath='kernel/trace/bpf_trace.c' line='1914' column='1'/>
+        <parameter type-id='91ce1af9' name='arg0' filepath='kernel/trace/bpf_trace.c' line='1914' column='1'/>
+        <parameter type-id='91ce1af9' name='arg1' filepath='kernel/trace/bpf_trace.c' line='1914' column='1'/>
+        <parameter type-id='91ce1af9' name='arg2' filepath='kernel/trace/bpf_trace.c' line='1914' column='1'/>
+        <parameter type-id='91ce1af9' name='arg3' filepath='kernel/trace/bpf_trace.c' line='1914' column='1'/>
+        <parameter type-id='91ce1af9' name='arg4' filepath='kernel/trace/bpf_trace.c' line='1914' column='1'/>
+        <parameter type-id='91ce1af9' name='arg5' filepath='kernel/trace/bpf_trace.c' line='1914' column='1'/>
+        <parameter type-id='91ce1af9' name='arg6' filepath='kernel/trace/bpf_trace.c' line='1914' column='1'/>
+        <parameter type-id='91ce1af9' name='arg7' filepath='kernel/trace/bpf_trace.c' line='1914' column='1'/>
+        <parameter type-id='91ce1af9' name='arg8' filepath='kernel/trace/bpf_trace.c' line='1914' column='1'/>
+        <parameter type-id='91ce1af9' name='arg9' filepath='kernel/trace/bpf_trace.c' line='1914' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='bpf_trace_run11' mangled-name='bpf_trace_run11' filepath='kernel/trace/bpf_trace.c' line='1915' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bpf_trace_run11'>
+        <parameter type-id='bdcee7ae' name='prog' filepath='kernel/trace/bpf_trace.c' line='1915' column='1'/>
+        <parameter type-id='91ce1af9' name='arg0' filepath='kernel/trace/bpf_trace.c' line='1915' column='1'/>
+        <parameter type-id='91ce1af9' name='arg1' filepath='kernel/trace/bpf_trace.c' line='1915' column='1'/>
+        <parameter type-id='91ce1af9' name='arg2' filepath='kernel/trace/bpf_trace.c' line='1915' column='1'/>
+        <parameter type-id='91ce1af9' name='arg3' filepath='kernel/trace/bpf_trace.c' line='1915' column='1'/>
+        <parameter type-id='91ce1af9' name='arg4' filepath='kernel/trace/bpf_trace.c' line='1915' column='1'/>
+        <parameter type-id='91ce1af9' name='arg5' filepath='kernel/trace/bpf_trace.c' line='1915' column='1'/>
+        <parameter type-id='91ce1af9' name='arg6' filepath='kernel/trace/bpf_trace.c' line='1915' column='1'/>
+        <parameter type-id='91ce1af9' name='arg7' filepath='kernel/trace/bpf_trace.c' line='1915' column='1'/>
+        <parameter type-id='91ce1af9' name='arg8' filepath='kernel/trace/bpf_trace.c' line='1915' column='1'/>
+        <parameter type-id='91ce1af9' name='arg9' filepath='kernel/trace/bpf_trace.c' line='1915' column='1'/>
+        <parameter type-id='91ce1af9' name='arg10' filepath='kernel/trace/bpf_trace.c' line='1915' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='bpf_trace_run12' mangled-name='bpf_trace_run12' filepath='kernel/trace/bpf_trace.c' line='1916' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bpf_trace_run12'>
+        <parameter type-id='bdcee7ae' name='prog' filepath='kernel/trace/bpf_trace.c' line='1916' column='1'/>
+        <parameter type-id='91ce1af9' name='arg0' filepath='kernel/trace/bpf_trace.c' line='1916' column='1'/>
+        <parameter type-id='91ce1af9' name='arg1' filepath='kernel/trace/bpf_trace.c' line='1916' column='1'/>
+        <parameter type-id='91ce1af9' name='arg2' filepath='kernel/trace/bpf_trace.c' line='1916' column='1'/>
+        <parameter type-id='91ce1af9' name='arg3' filepath='kernel/trace/bpf_trace.c' line='1916' column='1'/>
+        <parameter type-id='91ce1af9' name='arg4' filepath='kernel/trace/bpf_trace.c' line='1916' column='1'/>
+        <parameter type-id='91ce1af9' name='arg5' filepath='kernel/trace/bpf_trace.c' line='1916' column='1'/>
+        <parameter type-id='91ce1af9' name='arg6' filepath='kernel/trace/bpf_trace.c' line='1916' column='1'/>
+        <parameter type-id='91ce1af9' name='arg7' filepath='kernel/trace/bpf_trace.c' line='1916' column='1'/>
+        <parameter type-id='91ce1af9' name='arg8' filepath='kernel/trace/bpf_trace.c' line='1916' column='1'/>
+        <parameter type-id='91ce1af9' name='arg9' filepath='kernel/trace/bpf_trace.c' line='1916' column='1'/>
+        <parameter type-id='91ce1af9' name='arg10' filepath='kernel/trace/bpf_trace.c' line='1916' column='1'/>
+        <parameter type-id='91ce1af9' name='arg11' filepath='kernel/trace/bpf_trace.c' line='1916' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='bpf_trace_run2' mangled-name='bpf_trace_run2' filepath='kernel/trace/bpf_trace.c' line='1906' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bpf_trace_run2'>
+        <parameter type-id='bdcee7ae' name='prog' filepath='kernel/trace/bpf_trace.c' line='1906' column='1'/>
+        <parameter type-id='91ce1af9' name='arg0' filepath='kernel/trace/bpf_trace.c' line='1906' column='1'/>
+        <parameter type-id='91ce1af9' name='arg1' filepath='kernel/trace/bpf_trace.c' line='1906' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='bpf_trace_run3' mangled-name='bpf_trace_run3' filepath='kernel/trace/bpf_trace.c' line='1907' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bpf_trace_run3'>
+        <parameter type-id='bdcee7ae' name='prog' filepath='kernel/trace/bpf_trace.c' line='1907' column='1'/>
+        <parameter type-id='91ce1af9' name='arg0' filepath='kernel/trace/bpf_trace.c' line='1907' column='1'/>
+        <parameter type-id='91ce1af9' name='arg1' filepath='kernel/trace/bpf_trace.c' line='1907' column='1'/>
+        <parameter type-id='91ce1af9' name='arg2' filepath='kernel/trace/bpf_trace.c' line='1907' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='bpf_trace_run4' mangled-name='bpf_trace_run4' filepath='kernel/trace/bpf_trace.c' line='1908' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bpf_trace_run4'>
+        <parameter type-id='bdcee7ae' name='prog' filepath='kernel/trace/bpf_trace.c' line='1908' column='1'/>
+        <parameter type-id='91ce1af9' name='arg0' filepath='kernel/trace/bpf_trace.c' line='1908' column='1'/>
+        <parameter type-id='91ce1af9' name='arg1' filepath='kernel/trace/bpf_trace.c' line='1908' column='1'/>
+        <parameter type-id='91ce1af9' name='arg2' filepath='kernel/trace/bpf_trace.c' line='1908' column='1'/>
+        <parameter type-id='91ce1af9' name='arg3' filepath='kernel/trace/bpf_trace.c' line='1908' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='bpf_trace_run5' mangled-name='bpf_trace_run5' filepath='kernel/trace/bpf_trace.c' line='1909' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bpf_trace_run5'>
+        <parameter type-id='bdcee7ae' name='prog' filepath='kernel/trace/bpf_trace.c' line='1909' column='1'/>
+        <parameter type-id='91ce1af9' name='arg0' filepath='kernel/trace/bpf_trace.c' line='1909' column='1'/>
+        <parameter type-id='91ce1af9' name='arg1' filepath='kernel/trace/bpf_trace.c' line='1909' column='1'/>
+        <parameter type-id='91ce1af9' name='arg2' filepath='kernel/trace/bpf_trace.c' line='1909' column='1'/>
+        <parameter type-id='91ce1af9' name='arg3' filepath='kernel/trace/bpf_trace.c' line='1909' column='1'/>
+        <parameter type-id='91ce1af9' name='arg4' filepath='kernel/trace/bpf_trace.c' line='1909' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='bpf_trace_run6' mangled-name='bpf_trace_run6' filepath='kernel/trace/bpf_trace.c' line='1910' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bpf_trace_run6'>
         <parameter type-id='bdcee7ae' name='prog' filepath='kernel/trace/bpf_trace.c' line='1910' column='1'/>
         <parameter type-id='91ce1af9' name='arg0' filepath='kernel/trace/bpf_trace.c' line='1910' column='1'/>
         <parameter type-id='91ce1af9' name='arg1' filepath='kernel/trace/bpf_trace.c' line='1910' column='1'/>
@@ -132627,13 +133061,9 @@
         <parameter type-id='91ce1af9' name='arg3' filepath='kernel/trace/bpf_trace.c' line='1910' column='1'/>
         <parameter type-id='91ce1af9' name='arg4' filepath='kernel/trace/bpf_trace.c' line='1910' column='1'/>
         <parameter type-id='91ce1af9' name='arg5' filepath='kernel/trace/bpf_trace.c' line='1910' column='1'/>
-        <parameter type-id='91ce1af9' name='arg6' filepath='kernel/trace/bpf_trace.c' line='1910' column='1'/>
-        <parameter type-id='91ce1af9' name='arg7' filepath='kernel/trace/bpf_trace.c' line='1910' column='1'/>
-        <parameter type-id='91ce1af9' name='arg8' filepath='kernel/trace/bpf_trace.c' line='1910' column='1'/>
-        <parameter type-id='91ce1af9' name='arg9' filepath='kernel/trace/bpf_trace.c' line='1910' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='bpf_trace_run11' mangled-name='bpf_trace_run11' filepath='kernel/trace/bpf_trace.c' line='1911' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bpf_trace_run11'>
+      <function-decl name='bpf_trace_run7' mangled-name='bpf_trace_run7' filepath='kernel/trace/bpf_trace.c' line='1911' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bpf_trace_run7'>
         <parameter type-id='bdcee7ae' name='prog' filepath='kernel/trace/bpf_trace.c' line='1911' column='1'/>
         <parameter type-id='91ce1af9' name='arg0' filepath='kernel/trace/bpf_trace.c' line='1911' column='1'/>
         <parameter type-id='91ce1af9' name='arg1' filepath='kernel/trace/bpf_trace.c' line='1911' column='1'/>
@@ -132642,13 +133072,9 @@
         <parameter type-id='91ce1af9' name='arg4' filepath='kernel/trace/bpf_trace.c' line='1911' column='1'/>
         <parameter type-id='91ce1af9' name='arg5' filepath='kernel/trace/bpf_trace.c' line='1911' column='1'/>
         <parameter type-id='91ce1af9' name='arg6' filepath='kernel/trace/bpf_trace.c' line='1911' column='1'/>
-        <parameter type-id='91ce1af9' name='arg7' filepath='kernel/trace/bpf_trace.c' line='1911' column='1'/>
-        <parameter type-id='91ce1af9' name='arg8' filepath='kernel/trace/bpf_trace.c' line='1911' column='1'/>
-        <parameter type-id='91ce1af9' name='arg9' filepath='kernel/trace/bpf_trace.c' line='1911' column='1'/>
-        <parameter type-id='91ce1af9' name='arg10' filepath='kernel/trace/bpf_trace.c' line='1911' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='bpf_trace_run12' mangled-name='bpf_trace_run12' filepath='kernel/trace/bpf_trace.c' line='1912' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bpf_trace_run12'>
+      <function-decl name='bpf_trace_run8' mangled-name='bpf_trace_run8' filepath='kernel/trace/bpf_trace.c' line='1912' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bpf_trace_run8'>
         <parameter type-id='bdcee7ae' name='prog' filepath='kernel/trace/bpf_trace.c' line='1912' column='1'/>
         <parameter type-id='91ce1af9' name='arg0' filepath='kernel/trace/bpf_trace.c' line='1912' column='1'/>
         <parameter type-id='91ce1af9' name='arg1' filepath='kernel/trace/bpf_trace.c' line='1912' column='1'/>
@@ -132658,90 +133084,23 @@
         <parameter type-id='91ce1af9' name='arg5' filepath='kernel/trace/bpf_trace.c' line='1912' column='1'/>
         <parameter type-id='91ce1af9' name='arg6' filepath='kernel/trace/bpf_trace.c' line='1912' column='1'/>
         <parameter type-id='91ce1af9' name='arg7' filepath='kernel/trace/bpf_trace.c' line='1912' column='1'/>
-        <parameter type-id='91ce1af9' name='arg8' filepath='kernel/trace/bpf_trace.c' line='1912' column='1'/>
-        <parameter type-id='91ce1af9' name='arg9' filepath='kernel/trace/bpf_trace.c' line='1912' column='1'/>
-        <parameter type-id='91ce1af9' name='arg10' filepath='kernel/trace/bpf_trace.c' line='1912' column='1'/>
-        <parameter type-id='91ce1af9' name='arg11' filepath='kernel/trace/bpf_trace.c' line='1912' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='bpf_trace_run2' mangled-name='bpf_trace_run2' filepath='kernel/trace/bpf_trace.c' line='1902' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bpf_trace_run2'>
-        <parameter type-id='bdcee7ae' name='prog' filepath='kernel/trace/bpf_trace.c' line='1902' column='1'/>
-        <parameter type-id='91ce1af9' name='arg0' filepath='kernel/trace/bpf_trace.c' line='1902' column='1'/>
-        <parameter type-id='91ce1af9' name='arg1' filepath='kernel/trace/bpf_trace.c' line='1902' column='1'/>
+      <function-decl name='bpf_trace_run9' mangled-name='bpf_trace_run9' filepath='kernel/trace/bpf_trace.c' line='1913' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bpf_trace_run9'>
+        <parameter type-id='bdcee7ae' name='prog' filepath='kernel/trace/bpf_trace.c' line='1913' column='1'/>
+        <parameter type-id='91ce1af9' name='arg0' filepath='kernel/trace/bpf_trace.c' line='1913' column='1'/>
+        <parameter type-id='91ce1af9' name='arg1' filepath='kernel/trace/bpf_trace.c' line='1913' column='1'/>
+        <parameter type-id='91ce1af9' name='arg2' filepath='kernel/trace/bpf_trace.c' line='1913' column='1'/>
+        <parameter type-id='91ce1af9' name='arg3' filepath='kernel/trace/bpf_trace.c' line='1913' column='1'/>
+        <parameter type-id='91ce1af9' name='arg4' filepath='kernel/trace/bpf_trace.c' line='1913' column='1'/>
+        <parameter type-id='91ce1af9' name='arg5' filepath='kernel/trace/bpf_trace.c' line='1913' column='1'/>
+        <parameter type-id='91ce1af9' name='arg6' filepath='kernel/trace/bpf_trace.c' line='1913' column='1'/>
+        <parameter type-id='91ce1af9' name='arg7' filepath='kernel/trace/bpf_trace.c' line='1913' column='1'/>
+        <parameter type-id='91ce1af9' name='arg8' filepath='kernel/trace/bpf_trace.c' line='1913' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='bpf_trace_run3' mangled-name='bpf_trace_run3' filepath='kernel/trace/bpf_trace.c' line='1903' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bpf_trace_run3'>
-        <parameter type-id='bdcee7ae' name='prog' filepath='kernel/trace/bpf_trace.c' line='1903' column='1'/>
-        <parameter type-id='91ce1af9' name='arg0' filepath='kernel/trace/bpf_trace.c' line='1903' column='1'/>
-        <parameter type-id='91ce1af9' name='arg1' filepath='kernel/trace/bpf_trace.c' line='1903' column='1'/>
-        <parameter type-id='91ce1af9' name='arg2' filepath='kernel/trace/bpf_trace.c' line='1903' column='1'/>
-        <return type-id='48b5725f'/>
-      </function-decl>
-      <function-decl name='bpf_trace_run4' mangled-name='bpf_trace_run4' filepath='kernel/trace/bpf_trace.c' line='1904' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bpf_trace_run4'>
-        <parameter type-id='bdcee7ae' name='prog' filepath='kernel/trace/bpf_trace.c' line='1904' column='1'/>
-        <parameter type-id='91ce1af9' name='arg0' filepath='kernel/trace/bpf_trace.c' line='1904' column='1'/>
-        <parameter type-id='91ce1af9' name='arg1' filepath='kernel/trace/bpf_trace.c' line='1904' column='1'/>
-        <parameter type-id='91ce1af9' name='arg2' filepath='kernel/trace/bpf_trace.c' line='1904' column='1'/>
-        <parameter type-id='91ce1af9' name='arg3' filepath='kernel/trace/bpf_trace.c' line='1904' column='1'/>
-        <return type-id='48b5725f'/>
-      </function-decl>
-      <function-decl name='bpf_trace_run5' mangled-name='bpf_trace_run5' filepath='kernel/trace/bpf_trace.c' line='1905' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bpf_trace_run5'>
-        <parameter type-id='bdcee7ae' name='prog' filepath='kernel/trace/bpf_trace.c' line='1905' column='1'/>
-        <parameter type-id='91ce1af9' name='arg0' filepath='kernel/trace/bpf_trace.c' line='1905' column='1'/>
-        <parameter type-id='91ce1af9' name='arg1' filepath='kernel/trace/bpf_trace.c' line='1905' column='1'/>
-        <parameter type-id='91ce1af9' name='arg2' filepath='kernel/trace/bpf_trace.c' line='1905' column='1'/>
-        <parameter type-id='91ce1af9' name='arg3' filepath='kernel/trace/bpf_trace.c' line='1905' column='1'/>
-        <parameter type-id='91ce1af9' name='arg4' filepath='kernel/trace/bpf_trace.c' line='1905' column='1'/>
-        <return type-id='48b5725f'/>
-      </function-decl>
-      <function-decl name='bpf_trace_run6' mangled-name='bpf_trace_run6' filepath='kernel/trace/bpf_trace.c' line='1906' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bpf_trace_run6'>
-        <parameter type-id='bdcee7ae' name='prog' filepath='kernel/trace/bpf_trace.c' line='1906' column='1'/>
-        <parameter type-id='91ce1af9' name='arg0' filepath='kernel/trace/bpf_trace.c' line='1906' column='1'/>
-        <parameter type-id='91ce1af9' name='arg1' filepath='kernel/trace/bpf_trace.c' line='1906' column='1'/>
-        <parameter type-id='91ce1af9' name='arg2' filepath='kernel/trace/bpf_trace.c' line='1906' column='1'/>
-        <parameter type-id='91ce1af9' name='arg3' filepath='kernel/trace/bpf_trace.c' line='1906' column='1'/>
-        <parameter type-id='91ce1af9' name='arg4' filepath='kernel/trace/bpf_trace.c' line='1906' column='1'/>
-        <parameter type-id='91ce1af9' name='arg5' filepath='kernel/trace/bpf_trace.c' line='1906' column='1'/>
-        <return type-id='48b5725f'/>
-      </function-decl>
-      <function-decl name='bpf_trace_run7' mangled-name='bpf_trace_run7' filepath='kernel/trace/bpf_trace.c' line='1907' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bpf_trace_run7'>
-        <parameter type-id='bdcee7ae' name='prog' filepath='kernel/trace/bpf_trace.c' line='1907' column='1'/>
-        <parameter type-id='91ce1af9' name='arg0' filepath='kernel/trace/bpf_trace.c' line='1907' column='1'/>
-        <parameter type-id='91ce1af9' name='arg1' filepath='kernel/trace/bpf_trace.c' line='1907' column='1'/>
-        <parameter type-id='91ce1af9' name='arg2' filepath='kernel/trace/bpf_trace.c' line='1907' column='1'/>
-        <parameter type-id='91ce1af9' name='arg3' filepath='kernel/trace/bpf_trace.c' line='1907' column='1'/>
-        <parameter type-id='91ce1af9' name='arg4' filepath='kernel/trace/bpf_trace.c' line='1907' column='1'/>
-        <parameter type-id='91ce1af9' name='arg5' filepath='kernel/trace/bpf_trace.c' line='1907' column='1'/>
-        <parameter type-id='91ce1af9' name='arg6' filepath='kernel/trace/bpf_trace.c' line='1907' column='1'/>
-        <return type-id='48b5725f'/>
-      </function-decl>
-      <function-decl name='bpf_trace_run8' mangled-name='bpf_trace_run8' filepath='kernel/trace/bpf_trace.c' line='1908' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bpf_trace_run8'>
-        <parameter type-id='bdcee7ae' name='prog' filepath='kernel/trace/bpf_trace.c' line='1908' column='1'/>
-        <parameter type-id='91ce1af9' name='arg0' filepath='kernel/trace/bpf_trace.c' line='1908' column='1'/>
-        <parameter type-id='91ce1af9' name='arg1' filepath='kernel/trace/bpf_trace.c' line='1908' column='1'/>
-        <parameter type-id='91ce1af9' name='arg2' filepath='kernel/trace/bpf_trace.c' line='1908' column='1'/>
-        <parameter type-id='91ce1af9' name='arg3' filepath='kernel/trace/bpf_trace.c' line='1908' column='1'/>
-        <parameter type-id='91ce1af9' name='arg4' filepath='kernel/trace/bpf_trace.c' line='1908' column='1'/>
-        <parameter type-id='91ce1af9' name='arg5' filepath='kernel/trace/bpf_trace.c' line='1908' column='1'/>
-        <parameter type-id='91ce1af9' name='arg6' filepath='kernel/trace/bpf_trace.c' line='1908' column='1'/>
-        <parameter type-id='91ce1af9' name='arg7' filepath='kernel/trace/bpf_trace.c' line='1908' column='1'/>
-        <return type-id='48b5725f'/>
-      </function-decl>
-      <function-decl name='bpf_trace_run9' mangled-name='bpf_trace_run9' filepath='kernel/trace/bpf_trace.c' line='1909' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bpf_trace_run9'>
-        <parameter type-id='bdcee7ae' name='prog' filepath='kernel/trace/bpf_trace.c' line='1909' column='1'/>
-        <parameter type-id='91ce1af9' name='arg0' filepath='kernel/trace/bpf_trace.c' line='1909' column='1'/>
-        <parameter type-id='91ce1af9' name='arg1' filepath='kernel/trace/bpf_trace.c' line='1909' column='1'/>
-        <parameter type-id='91ce1af9' name='arg2' filepath='kernel/trace/bpf_trace.c' line='1909' column='1'/>
-        <parameter type-id='91ce1af9' name='arg3' filepath='kernel/trace/bpf_trace.c' line='1909' column='1'/>
-        <parameter type-id='91ce1af9' name='arg4' filepath='kernel/trace/bpf_trace.c' line='1909' column='1'/>
-        <parameter type-id='91ce1af9' name='arg5' filepath='kernel/trace/bpf_trace.c' line='1909' column='1'/>
-        <parameter type-id='91ce1af9' name='arg6' filepath='kernel/trace/bpf_trace.c' line='1909' column='1'/>
-        <parameter type-id='91ce1af9' name='arg7' filepath='kernel/trace/bpf_trace.c' line='1909' column='1'/>
-        <parameter type-id='91ce1af9' name='arg8' filepath='kernel/trace/bpf_trace.c' line='1909' column='1'/>
-        <return type-id='48b5725f'/>
-      </function-decl>
-      <function-decl name='bpf_warn_invalid_xdp_action' mangled-name='bpf_warn_invalid_xdp_action' filepath='net/core/filter.c' line='8228' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bpf_warn_invalid_xdp_action'>
-        <parameter type-id='19c2251e' name='act' filepath='net/core/filter.c' line='8228' column='1'/>
+      <function-decl name='bpf_warn_invalid_xdp_action' mangled-name='bpf_warn_invalid_xdp_action' filepath='net/core/filter.c' line='8231' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bpf_warn_invalid_xdp_action'>
+        <parameter type-id='19c2251e' name='act' filepath='net/core/filter.c' line='8231' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
       <function-decl name='bsearch' mangled-name='bsearch' filepath='lib/bsearch.c' line='31' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bsearch'>
@@ -132875,9 +133234,9 @@
         <parameter type-id='d504f73d' name='nb' filepath='drivers/base/bus.c' line='882' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='bus_set_iommu' mangled-name='bus_set_iommu' filepath='drivers/iommu/iommu.c' line='1884' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bus_set_iommu'>
-        <parameter type-id='5e2671f8' name='bus' filepath='drivers/iommu/iommu.c' line='1884' column='1'/>
-        <parameter type-id='f1ac64d0' name='ops' filepath='drivers/iommu/iommu.c' line='1884' column='1'/>
+      <function-decl name='bus_set_iommu' mangled-name='bus_set_iommu' filepath='drivers/iommu/iommu.c' line='1900' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bus_set_iommu'>
+        <parameter type-id='5e2671f8' name='bus' filepath='drivers/iommu/iommu.c' line='1900' column='1'/>
+        <parameter type-id='f1ac64d0' name='ops' filepath='drivers/iommu/iommu.c' line='1900' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
       <function-decl name='bus_unregister' mangled-name='bus_unregister' filepath='drivers/base/bus.c' line='868' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bus_unregister'>
@@ -132907,9 +133266,9 @@
         <parameter type-id='4edd56e3' name='func' filepath='kernel/rcu/tasks.h' line='551' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='call_rcu_tasks_trace' mangled-name='call_rcu_tasks_trace' filepath='kernel/rcu/tasks.h' line='1226' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='call_rcu_tasks_trace'>
-        <parameter type-id='69c138b1' name='rhp' filepath='kernel/rcu/tasks.h' line='1226' column='1'/>
-        <parameter type-id='4edd56e3' name='func' filepath='kernel/rcu/tasks.h' line='1226' column='1'/>
+      <function-decl name='call_rcu_tasks_trace' mangled-name='call_rcu_tasks_trace' filepath='kernel/rcu/tasks.h' line='1212' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='call_rcu_tasks_trace'>
+        <parameter type-id='69c138b1' name='rhp' filepath='kernel/rcu/tasks.h' line='1212' column='1'/>
+        <parameter type-id='4edd56e3' name='func' filepath='kernel/rcu/tasks.h' line='1212' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
       <function-decl name='call_srcu' mangled-name='call_srcu' filepath='kernel/rcu/srcutree.c' line='903' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='call_srcu'>
@@ -133214,10 +133573,10 @@
         <parameter type-id='e7f9d97b' name='dst_cssp' filepath='kernel/cgroup/cgroup.c' line='2457' column='1'/>
         <return type-id='f23e2572'/>
       </function-decl>
-      <function-decl name='check_preempt_curr' mangled-name='check_preempt_curr' filepath='kernel/sched/core.c' line='2139' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='check_preempt_curr'>
-        <parameter type-id='6ed6b432' name='rq' filepath='kernel/sched/core.c' line='2139' column='1'/>
-        <parameter type-id='f23e2572' name='p' filepath='kernel/sched/core.c' line='2139' column='1'/>
-        <parameter type-id='95e97e5e' name='flags' filepath='kernel/sched/core.c' line='2139' column='1'/>
+      <function-decl name='check_preempt_curr' mangled-name='check_preempt_curr' filepath='kernel/sched/core.c' line='2136' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='check_preempt_curr'>
+        <parameter type-id='6ed6b432' name='rq' filepath='kernel/sched/core.c' line='2136' column='1'/>
+        <parameter type-id='f23e2572' name='p' filepath='kernel/sched/core.c' line='2136' column='1'/>
+        <parameter type-id='95e97e5e' name='flags' filepath='kernel/sched/core.c' line='2136' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
       <function-decl name='check_zeroed_user' mangled-name='check_zeroed_user' filepath='lib/usercopy.c' line='54' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='check_zeroed_user'>
@@ -133610,6 +133969,11 @@
         <parameter type-id='2d9c5390' name='cl' filepath='drivers/clk/clkdev.c' line='259' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
+      <function-decl name='clockevent_delta2ns' mangled-name='clockevent_delta2ns' filepath='kernel/time/clockevents.c' line='85' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='clockevent_delta2ns'>
+        <parameter type-id='7359adad' name='latch' filepath='kernel/time/clockevents.c' line='85' column='1'/>
+        <parameter type-id='aff725d5' name='evt' filepath='kernel/time/clockevents.c' line='85' column='1'/>
+        <return type-id='91ce1af9'/>
+      </function-decl>
       <function-decl name='clockevents_config_and_register' mangled-name='clockevents_config_and_register' filepath='kernel/time/clockevents.c' line='504' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='clockevents_config_and_register'>
         <parameter type-id='aff725d5' name='dev' filepath='kernel/time/clockevents.c' line='504' column='1'/>
         <parameter type-id='19c2251e' name='freq' filepath='kernel/time/clockevents.c' line='505' column='1'/>
@@ -133617,6 +133981,10 @@
         <parameter type-id='7359adad' name='max_delta' filepath='kernel/time/clockevents.c' line='506' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
+      <function-decl name='clockevents_register_device' mangled-name='clockevents_register_device' filepath='kernel/time/clockevents.c' line='443' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='clockevents_register_device'>
+        <parameter type-id='aff725d5' name='dev' filepath='kernel/time/clockevents.c' line='443' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
       <function-decl name='clocks_calc_mult_shift' mangled-name='clocks_calc_mult_shift' filepath='kernel/time/clocksource.c' line='47' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='clocks_calc_mult_shift'>
         <parameter type-id='f9409001' name='mult' filepath='kernel/time/clocksource.c' line='47' column='1'/>
         <parameter type-id='f9409001' name='shift' filepath='kernel/time/clocksource.c' line='47' column='1'/>
@@ -133646,26 +134014,26 @@
         <parameter type-id='f0981eeb' name='fd' filepath='fs/file.c' line='662' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='cma_alloc' mangled-name='cma_alloc' filepath='mm/cma.c' line='440' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cma_alloc'>
-        <parameter type-id='6f67b38a' name='cma' filepath='mm/cma.c' line='440' column='1'/>
-        <parameter type-id='7359adad' name='count' filepath='mm/cma.c' line='440' column='1'/>
-        <parameter type-id='f0981eeb' name='align' filepath='mm/cma.c' line='441' column='1'/>
-        <parameter type-id='b50a4934' name='no_warn' filepath='mm/cma.c' line='441' column='1'/>
+      <function-decl name='cma_alloc' mangled-name='cma_alloc' filepath='mm/cma.c' line='436' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cma_alloc'>
+        <parameter type-id='6f67b38a' name='cma' filepath='mm/cma.c' line='436' column='1'/>
+        <parameter type-id='7359adad' name='count' filepath='mm/cma.c' line='436' column='1'/>
+        <parameter type-id='f0981eeb' name='align' filepath='mm/cma.c' line='437' column='1'/>
+        <parameter type-id='b50a4934' name='no_warn' filepath='mm/cma.c' line='437' column='1'/>
         <return type-id='02f11ed4'/>
       </function-decl>
-      <function-decl name='cma_for_each_area' mangled-name='cma_for_each_area' filepath='mm/cma.c' line='603' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cma_for_each_area'>
-        <parameter type-id='0b3f2e4c' name='it' filepath='mm/cma.c' line='603' column='1'/>
-        <parameter type-id='eaa32e2f' name='data' filepath='mm/cma.c' line='603' column='1'/>
+      <function-decl name='cma_for_each_area' mangled-name='cma_for_each_area' filepath='mm/cma.c' line='599' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cma_for_each_area'>
+        <parameter type-id='0b3f2e4c' name='it' filepath='mm/cma.c' line='599' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='mm/cma.c' line='599' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
       <function-decl name='cma_get_name' mangled-name='cma_get_name' filepath='mm/cma.c' line='60' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cma_get_name'>
         <parameter type-id='4605de5b' name='cma' filepath='mm/cma.c' line='60' column='1'/>
         <return type-id='80f4b756'/>
       </function-decl>
-      <function-decl name='cma_release' mangled-name='cma_release' filepath='mm/cma.c' line='578' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cma_release'>
-        <parameter type-id='6f67b38a' name='cma' filepath='mm/cma.c' line='578' column='1'/>
-        <parameter type-id='b72f2447' name='pages' filepath='mm/cma.c' line='578' column='1'/>
-        <parameter type-id='7359adad' name='count' filepath='mm/cma.c' line='579' column='1'/>
+      <function-decl name='cma_release' mangled-name='cma_release' filepath='mm/cma.c' line='574' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cma_release'>
+        <parameter type-id='6f67b38a' name='cma' filepath='mm/cma.c' line='574' column='1'/>
+        <parameter type-id='b72f2447' name='pages' filepath='mm/cma.c' line='574' column='1'/>
+        <parameter type-id='7359adad' name='count' filepath='mm/cma.c' line='575' column='1'/>
         <return type-id='b50a4934'/>
       </function-decl>
       <function-decl name='compat_ptr_ioctl' mangled-name='compat_ptr_ioctl' filepath='fs/ioctl.c' line='905' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='compat_ptr_ioctl'>
@@ -133682,9 +134050,9 @@
         <parameter type-id='389faaf7' name='x' filepath='kernel/sched/completion.c' line='57' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='complete_and_exit' mangled-name='complete_and_exit' filepath='kernel/exit.c' line='883' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='complete_and_exit'>
-        <parameter type-id='389faaf7' name='comp' filepath='kernel/exit.c' line='883' column='1'/>
-        <parameter type-id='bd54fe1a' name='code' filepath='kernel/exit.c' line='883' column='1'/>
+      <function-decl name='complete_and_exit' mangled-name='complete_and_exit' filepath='kernel/exit.c' line='955' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='complete_and_exit'>
+        <parameter type-id='389faaf7' name='comp' filepath='kernel/exit.c' line='955' column='1'/>
+        <parameter type-id='bd54fe1a' name='code' filepath='kernel/exit.c' line='955' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
       <function-decl name='completion_done' mangled-name='completion_done' filepath='kernel/sched/completion.c' line='315' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='completion_done'>
@@ -133920,12 +134288,12 @@
       <function-decl name='cpufreq_boost_enabled' mangled-name='cpufreq_boost_enabled' filepath='drivers/cpufreq/cpufreq.c' line='2769' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cpufreq_boost_enabled'>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='cpufreq_cooling_register' mangled-name='cpufreq_cooling_register' filepath='drivers/thermal/cpufreq_cooling.c' line='630' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cpufreq_cooling_register'>
-        <parameter type-id='343c3ae4' name='policy' filepath='drivers/thermal/cpufreq_cooling.c' line='630' column='1'/>
+      <function-decl name='cpufreq_cooling_register' mangled-name='cpufreq_cooling_register' filepath='drivers/thermal/cpufreq_cooling.c' line='627' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cpufreq_cooling_register'>
+        <parameter type-id='343c3ae4' name='policy' filepath='drivers/thermal/cpufreq_cooling.c' line='627' column='1'/>
         <return type-id='2feec21f'/>
       </function-decl>
-      <function-decl name='cpufreq_cooling_unregister' mangled-name='cpufreq_cooling_unregister' filepath='drivers/thermal/cpufreq_cooling.c' line='689' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cpufreq_cooling_unregister'>
-        <parameter type-id='2feec21f' name='cdev' filepath='drivers/thermal/cpufreq_cooling.c' line='689' column='1'/>
+      <function-decl name='cpufreq_cooling_unregister' mangled-name='cpufreq_cooling_unregister' filepath='drivers/thermal/cpufreq_cooling.c' line='686' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cpufreq_cooling_unregister'>
+        <parameter type-id='2feec21f' name='cdev' filepath='drivers/thermal/cpufreq_cooling.c' line='686' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
       <function-decl name='cpufreq_cpu_get' mangled-name='cpufreq_cpu_get' filepath='drivers/cpufreq/cpufreq.c' line='219' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cpufreq_cpu_get'>
@@ -134296,6 +134664,12 @@
         <parameter type-id='f28646d2' name='rta' filepath='crypto/algapi.c' line='876' column='1'/>
         <return type-id='80f4b756'/>
       </function-decl>
+      <function-decl name='crypto_authenc_extractkeys' mangled-name='crypto_authenc_extractkeys' filepath='crypto/authenc.c' line='46' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='crypto_authenc_extractkeys'>
+        <parameter type-id='704d2394' name='keys' filepath='crypto/authenc.c' line='46' column='1'/>
+        <parameter type-id='bbaf3419' name='key' filepath='crypto/authenc.c' line='46' column='1'/>
+        <parameter type-id='f0981eeb' name='keylen' filepath='crypto/authenc.c' line='47' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
       <function-decl name='crypto_check_attr_type' mangled-name='crypto_check_attr_type' filepath='crypto/algapi.c' line='860' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='crypto_check_attr_type'>
         <parameter type-id='c161b868' name='tb' filepath='crypto/algapi.c' line='860' column='1'/>
         <parameter type-id='19c2251e' name='type' filepath='crypto/algapi.c' line='860' column='1'/>
@@ -134707,6 +135081,11 @@
         <parameter type-id='b316d9a3' name='name' filepath='fs/dcache.c' line='2188' column='1'/>
         <return type-id='27675065'/>
       </function-decl>
+      <function-decl name='d_alloc_name' mangled-name='d_alloc_name' filepath='fs/dcache.c' line='1879' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='d_alloc_name'>
+        <parameter type-id='27675065' name='parent' filepath='fs/dcache.c' line='1879' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='fs/dcache.c' line='1879' column='1'/>
+        <return type-id='27675065'/>
+      </function-decl>
       <function-decl name='d_delete' mangled-name='d_delete' filepath='fs/dcache.c' line='2494' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='d_delete'>
         <parameter type-id='27675065' name='dentry' filepath='fs/dcache.c' line='2494' column='1'/>
         <return type-id='48b5725f'/>
@@ -134794,10 +135173,10 @@
         <parameter type-id='42c8f564' name='s' filepath='fs/super.c' line='329' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='deactivate_task' mangled-name='deactivate_task' filepath='kernel/sched/core.c' line='2054' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='deactivate_task'>
-        <parameter type-id='6ed6b432' name='rq' filepath='kernel/sched/core.c' line='2054' column='1'/>
-        <parameter type-id='f23e2572' name='p' filepath='kernel/sched/core.c' line='2054' column='1'/>
-        <parameter type-id='95e97e5e' name='flags' filepath='kernel/sched/core.c' line='2054' column='1'/>
+      <function-decl name='deactivate_task' mangled-name='deactivate_task' filepath='kernel/sched/core.c' line='2051' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='deactivate_task'>
+        <parameter type-id='6ed6b432' name='rq' filepath='kernel/sched/core.c' line='2051' column='1'/>
+        <parameter type-id='f23e2572' name='p' filepath='kernel/sched/core.c' line='2051' column='1'/>
+        <parameter type-id='95e97e5e' name='flags' filepath='kernel/sched/core.c' line='2051' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
       <function-decl name='debug_locks_off' mangled-name='debug_locks_off' filepath='lib/debug_locks.c' line='39' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='debug_locks_off'>
@@ -135000,11 +135379,11 @@
         <parameter type-id='95e97e5e' name='whence' filepath='fs/read_write.c' line='236' column='1'/>
         <return type-id='69bf7bee'/>
       </function-decl>
-      <function-decl name='default_wake_function' mangled-name='default_wake_function' filepath='kernel/sched/core.c' line='6948' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='default_wake_function'>
-        <parameter type-id='ba9aa326' name='curr' filepath='kernel/sched/core.c' line='6948' column='1'/>
-        <parameter type-id='f0981eeb' name='mode' filepath='kernel/sched/core.c' line='6948' column='1'/>
-        <parameter type-id='95e97e5e' name='wake_flags' filepath='kernel/sched/core.c' line='6948' column='1'/>
-        <parameter type-id='eaa32e2f' name='key' filepath='kernel/sched/core.c' line='6949' column='1'/>
+      <function-decl name='default_wake_function' mangled-name='default_wake_function' filepath='kernel/sched/core.c' line='6915' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='default_wake_function'>
+        <parameter type-id='ba9aa326' name='curr' filepath='kernel/sched/core.c' line='6915' column='1'/>
+        <parameter type-id='f0981eeb' name='mode' filepath='kernel/sched/core.c' line='6915' column='1'/>
+        <parameter type-id='95e97e5e' name='wake_flags' filepath='kernel/sched/core.c' line='6915' column='1'/>
+        <parameter type-id='eaa32e2f' name='key' filepath='kernel/sched/core.c' line='6916' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
       <function-decl name='deferred_free' mangled-name='deferred_free' filepath='drivers/dma-buf/heaps/deferred-free-helper.c' line='25' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='deferred_free'>
@@ -135729,8 +136108,8 @@
         <parameter type-id='95e97e5e' name='alen' filepath='drivers/base/property.c' line='1016' column='1'/>
         <return type-id='eaa32e2f'/>
       </function-decl>
-      <function-decl name='device_get_match_data' mangled-name='device_get_match_data' filepath='drivers/base/property.c' line='1278' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='device_get_match_data'>
-        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/property.c' line='1278' column='1'/>
+      <function-decl name='device_get_match_data' mangled-name='device_get_match_data' filepath='drivers/base/property.c' line='1284' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='device_get_match_data'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/property.c' line='1284' column='1'/>
         <return type-id='eaa32e2f'/>
       </function-decl>
       <function-decl name='device_get_named_child_node' mangled-name='device_get_named_child_node' filepath='drivers/base/property.c' line='815' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='device_get_named_child_node'>
@@ -135849,8 +136228,8 @@
         <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/core.c' line='3482' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='device_release_driver' mangled-name='device_release_driver' filepath='drivers/base/dd.c' line='1269' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='device_release_driver'>
-        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/dd.c' line='1269' column='1'/>
+      <function-decl name='device_release_driver' mangled-name='device_release_driver' filepath='drivers/base/dd.c' line='1273' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='device_release_driver'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/dd.c' line='1273' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
       <function-decl name='device_remove_bin_file' mangled-name='device_remove_bin_file' filepath='drivers/base/core.c' line='2829' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='device_remove_bin_file'>
@@ -136482,6 +136861,17 @@
         <parameter type-id='b59d7dce' name='priv' filepath='drivers/pci/probe.c' line='624' column='1'/>
         <return type-id='cb0dbc3c'/>
       </function-decl>
+      <function-decl name='devm_pci_remap_cfg_resource' mangled-name='devm_pci_remap_cfg_resource' filepath='drivers/pci/pci.c' line='4275' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_pci_remap_cfg_resource'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/pci/pci.c' line='4275' column='1'/>
+        <parameter type-id='c9d64c0d' name='res' filepath='drivers/pci/pci.c' line='4276' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='devm_pci_remap_cfgspace' mangled-name='devm_pci_remap_cfgspace' filepath='drivers/pci/pci.c' line='4235' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_pci_remap_cfgspace'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/pci/pci.c' line='4235' column='1'/>
+        <parameter type-id='acc63fdf' name='offset' filepath='drivers/pci/pci.c' line='4236' column='1'/>
+        <parameter type-id='acc63fdf' name='size' filepath='drivers/pci/pci.c' line='4237' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
       <function-decl name='devm_phy_create' mangled-name='devm_phy_create' filepath='drivers/phy/phy-core.c' line='975' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_phy_create'>
         <parameter type-id='fa0b179b' name='dev' filepath='drivers/phy/phy-core.c' line='975' column='1'/>
         <parameter type-id='9a537bbe' name='node' filepath='drivers/phy/phy-core.c' line='975' column='1'/>
@@ -136677,6 +137067,11 @@
         <parameter type-id='d504f73d' name='nb' filepath='drivers/regulator/devres.c' line='405' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
+      <function-decl name='devm_release_resource' mangled-name='devm_release_resource' filepath='kernel/resource.c' line='1523' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_release_resource'>
+        <parameter type-id='fa0b179b' name='dev' filepath='kernel/resource.c' line='1523' column='1'/>
+        <parameter type-id='c9d64c0d' name='new' filepath='kernel/resource.c' line='1523' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
       <function-decl name='devm_remove_action' mangled-name='devm_remove_action' filepath='drivers/base/devres.c' line='754' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_remove_action'>
         <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/devres.c' line='754' column='1'/>
         <parameter type-id='b7f9d8e6' name='action' filepath='drivers/base/devres.c' line='754' column='1'/>
@@ -136855,10 +137250,10 @@
         <parameter type-id='7e666abe' name='inode' filepath='fs/inode.c' line='1013' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='disk_end_io_acct' mangled-name='disk_end_io_acct' filepath='block/blk-core.c' line='1365' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='disk_end_io_acct'>
-        <parameter type-id='33c599da' name='disk' filepath='block/blk-core.c' line='1365' column='1'/>
-        <parameter type-id='f0981eeb' name='op' filepath='block/blk-core.c' line='1365' column='1'/>
-        <parameter type-id='7359adad' name='start_time' filepath='block/blk-core.c' line='1366' column='1'/>
+      <function-decl name='disk_end_io_acct' mangled-name='disk_end_io_acct' filepath='block/blk-core.c' line='1361' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='disk_end_io_acct'>
+        <parameter type-id='33c599da' name='disk' filepath='block/blk-core.c' line='1361' column='1'/>
+        <parameter type-id='f0981eeb' name='op' filepath='block/blk-core.c' line='1361' column='1'/>
+        <parameter type-id='7359adad' name='start_time' filepath='block/blk-core.c' line='1362' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
       <function-decl name='disk_stack_limits' mangled-name='disk_stack_limits' filepath='block/blk-settings.c' line='664' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='disk_stack_limits'>
@@ -136867,16 +137262,24 @@
         <parameter type-id='a42536cd' name='offset' filepath='block/blk-settings.c' line='665' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='disk_start_io_acct' mangled-name='disk_start_io_acct' filepath='block/blk-core.c' line='1337' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='disk_start_io_acct'>
-        <parameter type-id='33c599da' name='disk' filepath='block/blk-core.c' line='1337' column='1'/>
-        <parameter type-id='f0981eeb' name='sectors' filepath='block/blk-core.c' line='1337' column='1'/>
-        <parameter type-id='f0981eeb' name='op' filepath='block/blk-core.c' line='1338' column='1'/>
+      <function-decl name='disk_start_io_acct' mangled-name='disk_start_io_acct' filepath='block/blk-core.c' line='1333' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='disk_start_io_acct'>
+        <parameter type-id='33c599da' name='disk' filepath='block/blk-core.c' line='1333' column='1'/>
+        <parameter type-id='f0981eeb' name='sectors' filepath='block/blk-core.c' line='1333' column='1'/>
+        <parameter type-id='f0981eeb' name='op' filepath='block/blk-core.c' line='1334' column='1'/>
         <return type-id='7359adad'/>
       </function-decl>
       <function-decl name='display_timings_release' mangled-name='display_timings_release' filepath='drivers/video/display_timing.c' line='12' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='display_timings_release'>
         <parameter type-id='32e774d9' name='disp' filepath='drivers/video/display_timing.c' line='12' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
+      <function-decl name='divider_determine_rate' mangled-name='divider_determine_rate' filepath='drivers/clk/clk-divider.c' line='346' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='divider_determine_rate'>
+        <parameter type-id='3aaeef89' name='hw' filepath='drivers/clk/clk-divider.c' line='346' column='1'/>
+        <parameter type-id='23a0ad0a' name='req' filepath='drivers/clk/clk-divider.c' line='346' column='1'/>
+        <parameter type-id='caf2596f' name='table' filepath='drivers/clk/clk-divider.c' line='347' column='1'/>
+        <parameter type-id='f9b06939' name='width' filepath='drivers/clk/clk-divider.c' line='347' column='1'/>
+        <parameter type-id='7359adad' name='flags' filepath='drivers/clk/clk-divider.c' line='348' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
       <function-decl name='divider_get_val' mangled-name='divider_get_val' filepath='drivers/clk/clk-divider.c' line='470' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='divider_get_val'>
         <parameter type-id='7359adad' name='rate' filepath='drivers/clk/clk-divider.c' line='470' column='1'/>
         <parameter type-id='7359adad' name='parent_rate' filepath='drivers/clk/clk-divider.c' line='470' column='1'/>
@@ -136939,17 +137342,17 @@
         <parameter type-id='3eb7c31c' name='gfp' filepath='kernel/dma/mapping.c' line='563' column='1'/>
         <return type-id='02f11ed4'/>
       </function-decl>
-      <function-decl name='dma_async_device_register' mangled-name='dma_async_device_register' filepath='drivers/dma/dmaengine.c' line='1140' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_async_device_register'>
-        <parameter type-id='c60ba652' name='device' filepath='drivers/dma/dmaengine.c' line='1140' column='1'/>
+      <function-decl name='dma_async_device_register' mangled-name='dma_async_device_register' filepath='drivers/dma/dmaengine.c' line='1141' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_async_device_register'>
+        <parameter type-id='c60ba652' name='device' filepath='drivers/dma/dmaengine.c' line='1141' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='dma_async_device_unregister' mangled-name='dma_async_device_unregister' filepath='drivers/dma/dmaengine.c' line='1311' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_async_device_unregister'>
-        <parameter type-id='c60ba652' name='device' filepath='drivers/dma/dmaengine.c' line='1311' column='1'/>
+      <function-decl name='dma_async_device_unregister' mangled-name='dma_async_device_unregister' filepath='drivers/dma/dmaengine.c' line='1312' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_async_device_unregister'>
+        <parameter type-id='c60ba652' name='device' filepath='drivers/dma/dmaengine.c' line='1312' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='dma_async_tx_descriptor_init' mangled-name='dma_async_tx_descriptor_init' filepath='drivers/dma/dmaengine.c' line='1497' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_async_tx_descriptor_init'>
-        <parameter type-id='0e3f80d9' name='tx' filepath='drivers/dma/dmaengine.c' line='1497' column='1'/>
-        <parameter type-id='27f3f5d8' name='chan' filepath='drivers/dma/dmaengine.c' line='1498' column='1'/>
+      <function-decl name='dma_async_tx_descriptor_init' mangled-name='dma_async_tx_descriptor_init' filepath='drivers/dma/dmaengine.c' line='1498' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_async_tx_descriptor_init'>
+        <parameter type-id='0e3f80d9' name='tx' filepath='drivers/dma/dmaengine.c' line='1498' column='1'/>
+        <parameter type-id='27f3f5d8' name='chan' filepath='drivers/dma/dmaengine.c' line='1499' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
       <function-decl name='dma_buf_attach' mangled-name='dma_buf_attach' filepath='drivers/dma-buf/dma-buf.c' line='868' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_buf_attach'>
@@ -137184,8 +137587,8 @@
         <parameter type-id='eea6b025' name='dir' filepath='kernel/dma/mapping.c' line='586' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='dma_get_any_slave_channel' mangled-name='dma_get_any_slave_channel' filepath='drivers/dma/dmaengine.c' line='727' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_get_any_slave_channel'>
-        <parameter type-id='c60ba652' name='device' filepath='drivers/dma/dmaengine.c' line='727' column='1'/>
+      <function-decl name='dma_get_any_slave_channel' mangled-name='dma_get_any_slave_channel' filepath='drivers/dma/dmaengine.c' line='728' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_get_any_slave_channel'>
+        <parameter type-id='c60ba652' name='device' filepath='drivers/dma/dmaengine.c' line='728' column='1'/>
         <return type-id='27f3f5d8'/>
       </function-decl>
       <function-decl name='dma_get_required_mask' mangled-name='dma_get_required_mask' filepath='kernel/dma/mapping.c' line='470' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_get_required_mask'>
@@ -137201,13 +137604,13 @@
         <parameter type-id='7359adad' name='attrs' filepath='kernel/dma/mapping.c' line='390' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='dma_get_slave_caps' mangled-name='dma_get_slave_caps' filepath='drivers/dma/dmaengine.c' line='570' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_get_slave_caps'>
-        <parameter type-id='27f3f5d8' name='chan' filepath='drivers/dma/dmaengine.c' line='570' column='1'/>
-        <parameter type-id='d9f19b23' name='caps' filepath='drivers/dma/dmaengine.c' line='570' column='1'/>
+      <function-decl name='dma_get_slave_caps' mangled-name='dma_get_slave_caps' filepath='drivers/dma/dmaengine.c' line='571' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_get_slave_caps'>
+        <parameter type-id='27f3f5d8' name='chan' filepath='drivers/dma/dmaengine.c' line='571' column='1'/>
+        <parameter type-id='d9f19b23' name='caps' filepath='drivers/dma/dmaengine.c' line='571' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='dma_get_slave_channel' mangled-name='dma_get_slave_channel' filepath='drivers/dma/dmaengine.c' line='696' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_get_slave_channel'>
-        <parameter type-id='27f3f5d8' name='chan' filepath='drivers/dma/dmaengine.c' line='696' column='1'/>
+      <function-decl name='dma_get_slave_channel' mangled-name='dma_get_slave_channel' filepath='drivers/dma/dmaengine.c' line='697' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_get_slave_channel'>
+        <parameter type-id='27f3f5d8' name='chan' filepath='drivers/dma/dmaengine.c' line='697' column='1'/>
         <return type-id='27f3f5d8'/>
       </function-decl>
       <function-decl name='dma_heap_add' mangled-name='dma_heap_add' filepath='drivers/dma-buf/dma-heap.c' line='305' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_heap_add'>
@@ -137321,13 +137724,13 @@
         <parameter type-id='cf29c9b3' name='dma' filepath='mm/dmapool.c' line='404' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='dma_release_channel' mangled-name='dma_release_channel' filepath='drivers/dma/dmaengine.c' line='903' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_release_channel'>
-        <parameter type-id='27f3f5d8' name='chan' filepath='drivers/dma/dmaengine.c' line='903' column='1'/>
+      <function-decl name='dma_release_channel' mangled-name='dma_release_channel' filepath='drivers/dma/dmaengine.c' line='904' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_release_channel'>
+        <parameter type-id='27f3f5d8' name='chan' filepath='drivers/dma/dmaengine.c' line='904' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='dma_request_chan' mangled-name='dma_request_chan' filepath='drivers/dma/dmaengine.c' line='813' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_request_chan'>
-        <parameter type-id='fa0b179b' name='dev' filepath='drivers/dma/dmaengine.c' line='813' column='1'/>
-        <parameter type-id='80f4b756' name='name' filepath='drivers/dma/dmaengine.c' line='813' column='1'/>
+      <function-decl name='dma_request_chan' mangled-name='dma_request_chan' filepath='drivers/dma/dmaengine.c' line='814' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_request_chan'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/dma/dmaengine.c' line='814' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='drivers/dma/dmaengine.c' line='814' column='1'/>
         <return type-id='27f3f5d8'/>
       </function-decl>
       <function-decl name='dma_resv_add_excl_fence' mangled-name='dma_resv_add_excl_fence' filepath='drivers/dma-buf/dma-resv.c' line='285' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_resv_add_excl_fence'>
@@ -137372,8 +137775,8 @@
         <parameter type-id='7359adad' name='timeout' filepath='drivers/dma-buf/dma-resv.c' line='513' column='1'/>
         <return type-id='bd54fe1a'/>
       </function-decl>
-      <function-decl name='dma_run_dependencies' mangled-name='dma_run_dependencies' filepath='drivers/dma/dmaengine.c' line='1612' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_run_dependencies'>
-        <parameter type-id='0e3f80d9' name='tx' filepath='drivers/dma/dmaengine.c' line='1612' column='1'/>
+      <function-decl name='dma_run_dependencies' mangled-name='dma_run_dependencies' filepath='drivers/dma/dmaengine.c' line='1613' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_run_dependencies'>
+        <parameter type-id='0e3f80d9' name='tx' filepath='drivers/dma/dmaengine.c' line='1613' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
       <function-decl name='dma_set_coherent_mask' mangled-name='dma_set_coherent_mask' filepath='kernel/dma/mapping.c' line='752' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_set_coherent_mask'>
@@ -137419,9 +137822,9 @@
         <parameter type-id='eea6b025' name='dir' filepath='kernel/dma/mapping.c' line='336' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='dma_sync_wait' mangled-name='dma_sync_wait' filepath='drivers/dma/dmaengine.c' line='519' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_sync_wait'>
-        <parameter type-id='27f3f5d8' name='chan' filepath='drivers/dma/dmaengine.c' line='519' column='1'/>
-        <parameter type-id='6478ea0a' name='cookie' filepath='drivers/dma/dmaengine.c' line='519' column='1'/>
+      <function-decl name='dma_sync_wait' mangled-name='dma_sync_wait' filepath='drivers/dma/dmaengine.c' line='520' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_sync_wait'>
+        <parameter type-id='27f3f5d8' name='chan' filepath='drivers/dma/dmaengine.c' line='520' column='1'/>
+        <parameter type-id='6478ea0a' name='cookie' filepath='drivers/dma/dmaengine.c' line='520' column='1'/>
         <return type-id='02ac9d9d'/>
       </function-decl>
       <function-decl name='dma_unmap_page_attrs' mangled-name='dma_unmap_page_attrs' filepath='kernel/dma/mapping.c' line='165' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_unmap_page_attrs'>
@@ -137477,18 +137880,18 @@
         <parameter type-id='02f11ed4' name='page' filepath='drivers/dma-buf/heaps/page_pool.c' line='108' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='dmaengine_get_unmap_data' mangled-name='dmaengine_get_unmap_data' filepath='drivers/dma/dmaengine.c' line='1480' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dmaengine_get_unmap_data'>
-        <parameter type-id='fa0b179b' name='dev' filepath='drivers/dma/dmaengine.c' line='1480' column='1'/>
-        <parameter type-id='95e97e5e' name='nr' filepath='drivers/dma/dmaengine.c' line='1480' column='1'/>
-        <parameter type-id='3eb7c31c' name='flags' filepath='drivers/dma/dmaengine.c' line='1480' column='1'/>
+      <function-decl name='dmaengine_get_unmap_data' mangled-name='dmaengine_get_unmap_data' filepath='drivers/dma/dmaengine.c' line='1481' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dmaengine_get_unmap_data'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/dma/dmaengine.c' line='1481' column='1'/>
+        <parameter type-id='95e97e5e' name='nr' filepath='drivers/dma/dmaengine.c' line='1481' column='1'/>
+        <parameter type-id='3eb7c31c' name='flags' filepath='drivers/dma/dmaengine.c' line='1481' column='1'/>
         <return type-id='e220a5e2'/>
       </function-decl>
-      <function-decl name='dmaengine_unmap_put' mangled-name='dmaengine_unmap_put' filepath='drivers/dma/dmaengine.c' line='1431' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dmaengine_unmap_put'>
-        <parameter type-id='e220a5e2' name='unmap' filepath='drivers/dma/dmaengine.c' line='1431' column='1'/>
+      <function-decl name='dmaengine_unmap_put' mangled-name='dmaengine_unmap_put' filepath='drivers/dma/dmaengine.c' line='1432' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dmaengine_unmap_put'>
+        <parameter type-id='e220a5e2' name='unmap' filepath='drivers/dma/dmaengine.c' line='1432' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='dmaenginem_async_device_register' mangled-name='dmaenginem_async_device_register' filepath='drivers/dma/dmaengine.c' line='1347' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dmaenginem_async_device_register'>
-        <parameter type-id='c60ba652' name='device' filepath='drivers/dma/dmaengine.c' line='1347' column='1'/>
+      <function-decl name='dmaenginem_async_device_register' mangled-name='dmaenginem_async_device_register' filepath='drivers/dma/dmaengine.c' line='1348' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dmaenginem_async_device_register'>
+        <parameter type-id='c60ba652' name='device' filepath='drivers/dma/dmaengine.c' line='1348' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
       <function-decl name='dmam_alloc_attrs' mangled-name='dmam_alloc_attrs' filepath='kernel/dma/mapping.c' line='84' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dmam_alloc_attrs'>
@@ -137518,8 +137921,8 @@
         <parameter type-id='572fbdca' name='tty' filepath='drivers/tty/tty_io.c' line='3093' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='do_exit' mangled-name='do_exit' filepath='kernel/exit.c' line='730' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='do_exit'>
-        <parameter type-id='bd54fe1a' name='code' filepath='kernel/exit.c' line='730' column='1'/>
+      <function-decl name='do_exit' mangled-name='do_exit' filepath='kernel/exit.c' line='777' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='do_exit'>
+        <parameter type-id='bd54fe1a' name='code' filepath='kernel/exit.c' line='777' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
       <function-decl name='do_trace_netlink_extack' mangled-name='do_trace_netlink_extack' filepath='net/netlink/af_netlink.c' line='152' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='do_trace_netlink_extack'>
@@ -137548,9 +137951,9 @@
         <return type-id='95e97e5e'/>
       </function-decl>
       <var-decl name='dotdot_name' type-id='82c73a4e' mangled-name='dotdot_name' visibility='default' filepath='fs/dcache.c' line='87' column='1' elf-symbol-id='dotdot_name'/>
-      <function-decl name='double_rq_lock' mangled-name='double_rq_lock' filepath='kernel/sched/core.c' line='545' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='double_rq_lock'>
-        <parameter type-id='6ed6b432' name='rq1' filepath='kernel/sched/core.c' line='545' column='1'/>
-        <parameter type-id='6ed6b432' name='rq2' filepath='kernel/sched/core.c' line='545' column='1'/>
+      <function-decl name='double_rq_lock' mangled-name='double_rq_lock' filepath='kernel/sched/core.c' line='542' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='double_rq_lock'>
+        <parameter type-id='6ed6b432' name='rq1' filepath='kernel/sched/core.c' line='542' column='1'/>
+        <parameter type-id='6ed6b432' name='rq2' filepath='kernel/sched/core.c' line='542' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
       <function-decl name='down' mangled-name='down' filepath='kernel/locking/semaphore.c' line='53' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='down'>
@@ -137565,16 +137968,16 @@
         <parameter type-id='a965a5b5' name='sem' filepath='kernel/locking/semaphore.c' line='103' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='down_read' mangled-name='down_read' filepath='kernel/locking/rwsem.c' line='1529' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='down_read'>
-        <parameter type-id='9b58df93' name='sem' filepath='kernel/locking/rwsem.c' line='1529' column='1'/>
+      <function-decl name='down_read' mangled-name='down_read' filepath='kernel/locking/rwsem.c' line='1541' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='down_read'>
+        <parameter type-id='9b58df93' name='sem' filepath='kernel/locking/rwsem.c' line='1541' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='down_read_killable' mangled-name='down_read_killable' filepath='kernel/locking/rwsem.c' line='1552' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='down_read_killable'>
-        <parameter type-id='9b58df93' name='sem' filepath='kernel/locking/rwsem.c' line='1552' column='1'/>
+      <function-decl name='down_read_killable' mangled-name='down_read_killable' filepath='kernel/locking/rwsem.c' line='1564' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='down_read_killable'>
+        <parameter type-id='9b58df93' name='sem' filepath='kernel/locking/rwsem.c' line='1564' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='down_read_trylock' mangled-name='down_read_trylock' filepath='kernel/locking/rwsem.c' line='1569' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='down_read_trylock'>
-        <parameter type-id='9b58df93' name='sem' filepath='kernel/locking/rwsem.c' line='1569' column='1'/>
+      <function-decl name='down_read_trylock' mangled-name='down_read_trylock' filepath='kernel/locking/rwsem.c' line='1581' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='down_read_trylock'>
+        <parameter type-id='9b58df93' name='sem' filepath='kernel/locking/rwsem.c' line='1581' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
       <function-decl name='down_timeout' mangled-name='down_timeout' filepath='kernel/locking/semaphore.c' line='158' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='down_timeout'>
@@ -137586,20 +137989,20 @@
         <parameter type-id='a965a5b5' name='sem' filepath='kernel/locking/semaphore.c' line='133' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='down_write' mangled-name='down_write' filepath='kernel/locking/rwsem.c' line='1582' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='down_write'>
-        <parameter type-id='9b58df93' name='sem' filepath='kernel/locking/rwsem.c' line='1582' column='1'/>
+      <function-decl name='down_write' mangled-name='down_write' filepath='kernel/locking/rwsem.c' line='1594' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='down_write'>
+        <parameter type-id='9b58df93' name='sem' filepath='kernel/locking/rwsem.c' line='1594' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='down_write_killable' mangled-name='down_write_killable' filepath='kernel/locking/rwsem.c' line='1593' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='down_write_killable'>
-        <parameter type-id='9b58df93' name='sem' filepath='kernel/locking/rwsem.c' line='1593' column='1'/>
+      <function-decl name='down_write_killable' mangled-name='down_write_killable' filepath='kernel/locking/rwsem.c' line='1605' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='down_write_killable'>
+        <parameter type-id='9b58df93' name='sem' filepath='kernel/locking/rwsem.c' line='1605' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='down_write_trylock' mangled-name='down_write_trylock' filepath='kernel/locking/rwsem.c' line='1611' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='down_write_trylock'>
-        <parameter type-id='9b58df93' name='sem' filepath='kernel/locking/rwsem.c' line='1611' column='1'/>
+      <function-decl name='down_write_trylock' mangled-name='down_write_trylock' filepath='kernel/locking/rwsem.c' line='1623' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='down_write_trylock'>
+        <parameter type-id='9b58df93' name='sem' filepath='kernel/locking/rwsem.c' line='1623' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='downgrade_write' mangled-name='downgrade_write' filepath='kernel/locking/rwsem.c' line='1646' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='downgrade_write'>
-        <parameter type-id='9b58df93' name='sem' filepath='kernel/locking/rwsem.c' line='1646' column='1'/>
+      <function-decl name='downgrade_write' mangled-name='downgrade_write' filepath='kernel/locking/rwsem.c' line='1658' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='downgrade_write'>
+        <parameter type-id='9b58df93' name='sem' filepath='kernel/locking/rwsem.c' line='1658' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
       <function-decl name='dput' mangled-name='dput' filepath='fs/dcache.c' line='869' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dput'>
@@ -137674,16 +138077,16 @@
         <parameter type-id='7e666abe' name='inode' filepath='fs/quota/dquot.c' line='1917' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='dquot_get_dqblk' mangled-name='dquot_get_dqblk' filepath='fs/quota/dquot.c' line='2623' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dquot_get_dqblk'>
-        <parameter type-id='42c8f564' name='sb' filepath='fs/quota/dquot.c' line='2623' column='1'/>
-        <parameter type-id='72028e1c' name='qid' filepath='fs/quota/dquot.c' line='2623' column='1'/>
-        <parameter type-id='39341f7e' name='di' filepath='fs/quota/dquot.c' line='2624' column='1'/>
+      <function-decl name='dquot_get_dqblk' mangled-name='dquot_get_dqblk' filepath='fs/quota/dquot.c' line='2625' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dquot_get_dqblk'>
+        <parameter type-id='42c8f564' name='sb' filepath='fs/quota/dquot.c' line='2625' column='1'/>
+        <parameter type-id='72028e1c' name='qid' filepath='fs/quota/dquot.c' line='2625' column='1'/>
+        <parameter type-id='39341f7e' name='di' filepath='fs/quota/dquot.c' line='2626' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='dquot_get_next_dqblk' mangled-name='dquot_get_next_dqblk' filepath='fs/quota/dquot.c' line='2638' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dquot_get_next_dqblk'>
-        <parameter type-id='42c8f564' name='sb' filepath='fs/quota/dquot.c' line='2638' column='1'/>
-        <parameter type-id='cc8d835a' name='qid' filepath='fs/quota/dquot.c' line='2638' column='1'/>
-        <parameter type-id='39341f7e' name='di' filepath='fs/quota/dquot.c' line='2639' column='1'/>
+      <function-decl name='dquot_get_next_dqblk' mangled-name='dquot_get_next_dqblk' filepath='fs/quota/dquot.c' line='2640' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dquot_get_next_dqblk'>
+        <parameter type-id='42c8f564' name='sb' filepath='fs/quota/dquot.c' line='2640' column='1'/>
+        <parameter type-id='cc8d835a' name='qid' filepath='fs/quota/dquot.c' line='2640' column='1'/>
+        <parameter type-id='39341f7e' name='di' filepath='fs/quota/dquot.c' line='2641' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
       <function-decl name='dquot_get_next_id' mangled-name='dquot_get_next_id' filepath='fs/quota/dquot.c' line='2138' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dquot_get_next_id'>
@@ -137691,9 +138094,9 @@
         <parameter type-id='cc8d835a' name='qid' filepath='fs/quota/dquot.c' line='2138' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='dquot_get_state' mangled-name='dquot_get_state' filepath='fs/quota/dquot.c' line='2775' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dquot_get_state'>
-        <parameter type-id='42c8f564' name='sb' filepath='fs/quota/dquot.c' line='2775' column='1'/>
-        <parameter type-id='6dcf57f3' name='state' filepath='fs/quota/dquot.c' line='2775' column='1'/>
+      <function-decl name='dquot_get_state' mangled-name='dquot_get_state' filepath='fs/quota/dquot.c' line='2777' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dquot_get_state'>
+        <parameter type-id='42c8f564' name='sb' filepath='fs/quota/dquot.c' line='2777' column='1'/>
+        <parameter type-id='6dcf57f3' name='state' filepath='fs/quota/dquot.c' line='2777' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
       <function-decl name='dquot_initialize' mangled-name='dquot_initialize' filepath='fs/quota/dquot.c' line='1548' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dquot_initialize'>
@@ -137704,11 +138107,11 @@
         <parameter type-id='7e666abe' name='inode' filepath='fs/quota/dquot.c' line='1554' column='1'/>
         <return type-id='b50a4934'/>
       </function-decl>
-      <function-decl name='dquot_load_quota_inode' mangled-name='dquot_load_quota_inode' filepath='fs/quota/dquot.c' line='2428' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dquot_load_quota_inode'>
-        <parameter type-id='7e666abe' name='inode' filepath='fs/quota/dquot.c' line='2428' column='1'/>
-        <parameter type-id='95e97e5e' name='type' filepath='fs/quota/dquot.c' line='2428' column='1'/>
-        <parameter type-id='95e97e5e' name='format_id' filepath='fs/quota/dquot.c' line='2428' column='1'/>
-        <parameter type-id='f0981eeb' name='flags' filepath='fs/quota/dquot.c' line='2429' column='1'/>
+      <function-decl name='dquot_load_quota_inode' mangled-name='dquot_load_quota_inode' filepath='fs/quota/dquot.c' line='2430' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dquot_load_quota_inode'>
+        <parameter type-id='7e666abe' name='inode' filepath='fs/quota/dquot.c' line='2430' column='1'/>
+        <parameter type-id='95e97e5e' name='type' filepath='fs/quota/dquot.c' line='2430' column='1'/>
+        <parameter type-id='95e97e5e' name='format_id' filepath='fs/quota/dquot.c' line='2430' column='1'/>
+        <parameter type-id='f0981eeb' name='flags' filepath='fs/quota/dquot.c' line='2431' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
       <function-decl name='dquot_mark_dquot_dirty' mangled-name='dquot_mark_dquot_dirty' filepath='fs/quota/dquot.c' line='350' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dquot_mark_dquot_dirty'>
@@ -137720,39 +138123,39 @@
         <parameter type-id='95e97e5e' name='type' filepath='fs/quota/dquot.c' line='2304' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='dquot_quota_on' mangled-name='dquot_quota_on' filepath='fs/quota/dquot.c' line='2478' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dquot_quota_on'>
-        <parameter type-id='42c8f564' name='sb' filepath='fs/quota/dquot.c' line='2478' column='1'/>
-        <parameter type-id='95e97e5e' name='type' filepath='fs/quota/dquot.c' line='2478' column='1'/>
-        <parameter type-id='95e97e5e' name='format_id' filepath='fs/quota/dquot.c' line='2478' column='1'/>
-        <parameter type-id='a77efac3' name='path' filepath='fs/quota/dquot.c' line='2479' column='1'/>
+      <function-decl name='dquot_quota_on' mangled-name='dquot_quota_on' filepath='fs/quota/dquot.c' line='2480' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dquot_quota_on'>
+        <parameter type-id='42c8f564' name='sb' filepath='fs/quota/dquot.c' line='2480' column='1'/>
+        <parameter type-id='95e97e5e' name='type' filepath='fs/quota/dquot.c' line='2480' column='1'/>
+        <parameter type-id='95e97e5e' name='format_id' filepath='fs/quota/dquot.c' line='2480' column='1'/>
+        <parameter type-id='a77efac3' name='path' filepath='fs/quota/dquot.c' line='2481' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='dquot_quota_on_mount' mangled-name='dquot_quota_on_mount' filepath='fs/quota/dquot.c' line='2499' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dquot_quota_on_mount'>
-        <parameter type-id='42c8f564' name='sb' filepath='fs/quota/dquot.c' line='2499' column='1'/>
-        <parameter type-id='26a90f95' name='qf_name' filepath='fs/quota/dquot.c' line='2499' column='1'/>
-        <parameter type-id='95e97e5e' name='format_id' filepath='fs/quota/dquot.c' line='2500' column='1'/>
-        <parameter type-id='95e97e5e' name='type' filepath='fs/quota/dquot.c' line='2500' column='1'/>
+      <function-decl name='dquot_quota_on_mount' mangled-name='dquot_quota_on_mount' filepath='fs/quota/dquot.c' line='2501' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dquot_quota_on_mount'>
+        <parameter type-id='42c8f564' name='sb' filepath='fs/quota/dquot.c' line='2501' column='1'/>
+        <parameter type-id='26a90f95' name='qf_name' filepath='fs/quota/dquot.c' line='2501' column='1'/>
+        <parameter type-id='95e97e5e' name='format_id' filepath='fs/quota/dquot.c' line='2502' column='1'/>
+        <parameter type-id='95e97e5e' name='type' filepath='fs/quota/dquot.c' line='2502' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
       <function-decl name='dquot_release' mangled-name='dquot_release' filepath='fs/quota/dquot.c' line='499' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dquot_release'>
         <parameter type-id='e9a4c848' name='dquot' filepath='fs/quota/dquot.c' line='499' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='dquot_resume' mangled-name='dquot_resume' filepath='fs/quota/dquot.c' line='2444' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dquot_resume'>
-        <parameter type-id='42c8f564' name='sb' filepath='fs/quota/dquot.c' line='2444' column='1'/>
-        <parameter type-id='95e97e5e' name='type' filepath='fs/quota/dquot.c' line='2444' column='1'/>
+      <function-decl name='dquot_resume' mangled-name='dquot_resume' filepath='fs/quota/dquot.c' line='2446' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dquot_resume'>
+        <parameter type-id='42c8f564' name='sb' filepath='fs/quota/dquot.c' line='2446' column='1'/>
+        <parameter type-id='95e97e5e' name='type' filepath='fs/quota/dquot.c' line='2446' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='dquot_set_dqblk' mangled-name='dquot_set_dqblk' filepath='fs/quota/dquot.c' line='2756' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dquot_set_dqblk'>
-        <parameter type-id='42c8f564' name='sb' filepath='fs/quota/dquot.c' line='2756' column='1'/>
-        <parameter type-id='72028e1c' name='qid' filepath='fs/quota/dquot.c' line='2756' column='1'/>
-        <parameter type-id='39341f7e' name='di' filepath='fs/quota/dquot.c' line='2757' column='1'/>
+      <function-decl name='dquot_set_dqblk' mangled-name='dquot_set_dqblk' filepath='fs/quota/dquot.c' line='2758' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dquot_set_dqblk'>
+        <parameter type-id='42c8f564' name='sb' filepath='fs/quota/dquot.c' line='2758' column='1'/>
+        <parameter type-id='72028e1c' name='qid' filepath='fs/quota/dquot.c' line='2758' column='1'/>
+        <parameter type-id='39341f7e' name='di' filepath='fs/quota/dquot.c' line='2759' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='dquot_set_dqinfo' mangled-name='dquot_set_dqinfo' filepath='fs/quota/dquot.c' line='2810' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dquot_set_dqinfo'>
-        <parameter type-id='42c8f564' name='sb' filepath='fs/quota/dquot.c' line='2810' column='1'/>
-        <parameter type-id='95e97e5e' name='type' filepath='fs/quota/dquot.c' line='2810' column='1'/>
-        <parameter type-id='66b0cee4' name='ii' filepath='fs/quota/dquot.c' line='2810' column='1'/>
+      <function-decl name='dquot_set_dqinfo' mangled-name='dquot_set_dqinfo' filepath='fs/quota/dquot.c' line='2812' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dquot_set_dqinfo'>
+        <parameter type-id='42c8f564' name='sb' filepath='fs/quota/dquot.c' line='2812' column='1'/>
+        <parameter type-id='95e97e5e' name='type' filepath='fs/quota/dquot.c' line='2812' column='1'/>
+        <parameter type-id='66b0cee4' name='ii' filepath='fs/quota/dquot.c' line='2812' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
       <function-decl name='dquot_transfer' mangled-name='dquot_transfer' filepath='fs/quota/dquot.c' line='2088' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dquot_transfer'>
@@ -137769,8 +138172,8 @@
         <parameter type-id='242e3d19' name='wq' filepath='kernel/workqueue.c' line='2983' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='driver_attach' mangled-name='driver_attach' filepath='drivers/base/dd.c' line='1170' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='driver_attach'>
-        <parameter type-id='00c7b870' name='drv' filepath='drivers/base/dd.c' line='1170' column='1'/>
+      <function-decl name='driver_attach' mangled-name='driver_attach' filepath='drivers/base/dd.c' line='1174' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='driver_attach'>
+        <parameter type-id='00c7b870' name='drv' filepath='drivers/base/dd.c' line='1174' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
       <function-decl name='driver_create_file' mangled-name='driver_create_file' filepath='drivers/base/driver.c' line='101' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='driver_create_file'>
@@ -138334,9 +138737,9 @@
         <parameter type-id='7359adad' name='arg' filepath='drivers/gpu/drm/drm_ioc32.c' line='971' column='1'/>
         <return type-id='bd54fe1a'/>
       </function-decl>
-      <function-decl name='drm_connector_atomic_hdr_metadata_equal' mangled-name='drm_connector_atomic_hdr_metadata_equal' filepath='drivers/gpu/drm/drm_connector.c' line='2208' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_connector_atomic_hdr_metadata_equal'>
-        <parameter type-id='249ef586' name='old_state' filepath='drivers/gpu/drm/drm_connector.c' line='2208' column='1'/>
-        <parameter type-id='249ef586' name='new_state' filepath='drivers/gpu/drm/drm_connector.c' line='2209' column='1'/>
+      <function-decl name='drm_connector_atomic_hdr_metadata_equal' mangled-name='drm_connector_atomic_hdr_metadata_equal' filepath='drivers/gpu/drm/drm_connector.c' line='2211' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_connector_atomic_hdr_metadata_equal'>
+        <parameter type-id='249ef586' name='old_state' filepath='drivers/gpu/drm/drm_connector.c' line='2211' column='1'/>
+        <parameter type-id='249ef586' name='new_state' filepath='drivers/gpu/drm/drm_connector.c' line='2212' column='1'/>
         <return type-id='b50a4934'/>
       </function-decl>
       <function-decl name='drm_connector_attach_content_protection_property' mangled-name='drm_connector_attach_content_protection_property' filepath='drivers/gpu/drm/drm_hdcp.c' line='357' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_connector_attach_content_protection_property'>
@@ -138344,12 +138747,12 @@
         <parameter type-id='b50a4934' name='hdcp_content_type' filepath='drivers/gpu/drm/drm_hdcp.c' line='358' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='drm_connector_attach_content_type_property' mangled-name='drm_connector_attach_content_type_property' filepath='drivers/gpu/drm/drm_connector.c' line='1393' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_connector_attach_content_type_property'>
-        <parameter type-id='4db02c58' name='connector' filepath='drivers/gpu/drm/drm_connector.c' line='1393' column='1'/>
+      <function-decl name='drm_connector_attach_content_type_property' mangled-name='drm_connector_attach_content_type_property' filepath='drivers/gpu/drm/drm_connector.c' line='1396' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_connector_attach_content_type_property'>
+        <parameter type-id='4db02c58' name='connector' filepath='drivers/gpu/drm/drm_connector.c' line='1396' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='drm_connector_attach_dp_subconnector_property' mangled-name='drm_connector_attach_dp_subconnector_property' filepath='drivers/gpu/drm/drm_connector.c' line='1343' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_connector_attach_dp_subconnector_property'>
-        <parameter type-id='4db02c58' name='connector' filepath='drivers/gpu/drm/drm_connector.c' line='1343' column='1'/>
+      <function-decl name='drm_connector_attach_dp_subconnector_property' mangled-name='drm_connector_attach_dp_subconnector_property' filepath='drivers/gpu/drm/drm_connector.c' line='1346' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_connector_attach_dp_subconnector_property'>
+        <parameter type-id='4db02c58' name='connector' filepath='drivers/gpu/drm/drm_connector.c' line='1346' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
       <function-decl name='drm_connector_attach_edid_property' mangled-name='drm_connector_attach_edid_property' filepath='drivers/gpu/drm/drm_connector.c' line='370' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_connector_attach_edid_property'>
@@ -138361,18 +138764,18 @@
         <parameter type-id='74d89ebd' name='encoder' filepath='drivers/gpu/drm/drm_connector.c' line='393' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='drm_connector_attach_hdr_output_metadata_property' mangled-name='drm_connector_attach_hdr_output_metadata_property' filepath='drivers/gpu/drm/drm_connector.c' line='2165' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_connector_attach_hdr_output_metadata_property'>
-        <parameter type-id='4db02c58' name='connector' filepath='drivers/gpu/drm/drm_connector.c' line='2165' column='1'/>
+      <function-decl name='drm_connector_attach_hdr_output_metadata_property' mangled-name='drm_connector_attach_hdr_output_metadata_property' filepath='drivers/gpu/drm/drm_connector.c' line='2168' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_connector_attach_hdr_output_metadata_property'>
+        <parameter type-id='4db02c58' name='connector' filepath='drivers/gpu/drm/drm_connector.c' line='2168' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='drm_connector_attach_max_bpc_property' mangled-name='drm_connector_attach_max_bpc_property' filepath='drivers/gpu/drm/drm_connector.c' line='2132' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_connector_attach_max_bpc_property'>
-        <parameter type-id='4db02c58' name='connector' filepath='drivers/gpu/drm/drm_connector.c' line='2132' column='1'/>
-        <parameter type-id='95e97e5e' name='min' filepath='drivers/gpu/drm/drm_connector.c' line='2133' column='1'/>
-        <parameter type-id='95e97e5e' name='max' filepath='drivers/gpu/drm/drm_connector.c' line='2133' column='1'/>
+      <function-decl name='drm_connector_attach_max_bpc_property' mangled-name='drm_connector_attach_max_bpc_property' filepath='drivers/gpu/drm/drm_connector.c' line='2135' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_connector_attach_max_bpc_property'>
+        <parameter type-id='4db02c58' name='connector' filepath='drivers/gpu/drm/drm_connector.c' line='2135' column='1'/>
+        <parameter type-id='95e97e5e' name='min' filepath='drivers/gpu/drm/drm_connector.c' line='2136' column='1'/>
+        <parameter type-id='95e97e5e' name='max' filepath='drivers/gpu/drm/drm_connector.c' line='2136' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='drm_connector_attach_vrr_capable_property' mangled-name='drm_connector_attach_vrr_capable_property' filepath='drivers/gpu/drm/drm_connector.c' line='1699' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_connector_attach_vrr_capable_property'>
-        <parameter type-id='4db02c58' name='connector' filepath='drivers/gpu/drm/drm_connector.c' line='1700' column='1'/>
+      <function-decl name='drm_connector_attach_vrr_capable_property' mangled-name='drm_connector_attach_vrr_capable_property' filepath='drivers/gpu/drm/drm_connector.c' line='1702' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_connector_attach_vrr_capable_property'>
+        <parameter type-id='4db02c58' name='connector' filepath='drivers/gpu/drm/drm_connector.c' line='1703' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
       <function-decl name='drm_connector_cleanup' mangled-name='drm_connector_cleanup' filepath='drivers/gpu/drm/drm_connector.c' line='444' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_connector_cleanup'>
@@ -138399,49 +138802,49 @@
         <parameter type-id='b9af02c3' name='ddc' filepath='drivers/gpu/drm/drm_connector.c' line='347' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='drm_connector_list_iter_begin' mangled-name='drm_connector_list_iter_begin' filepath='drivers/gpu/drm/drm_connector.c' line='660' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_connector_list_iter_begin'>
-        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_connector.c' line='660' column='1'/>
-        <parameter type-id='40a902ec' name='iter' filepath='drivers/gpu/drm/drm_connector.c' line='661' column='1'/>
+      <function-decl name='drm_connector_list_iter_begin' mangled-name='drm_connector_list_iter_begin' filepath='drivers/gpu/drm/drm_connector.c' line='663' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_connector_list_iter_begin'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_connector.c' line='663' column='1'/>
+        <parameter type-id='40a902ec' name='iter' filepath='drivers/gpu/drm/drm_connector.c' line='664' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='drm_connector_list_iter_end' mangled-name='drm_connector_list_iter_end' filepath='drivers/gpu/drm/drm_connector.c' line='735' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_connector_list_iter_end'>
-        <parameter type-id='40a902ec' name='iter' filepath='drivers/gpu/drm/drm_connector.c' line='735' column='1'/>
+      <function-decl name='drm_connector_list_iter_end' mangled-name='drm_connector_list_iter_end' filepath='drivers/gpu/drm/drm_connector.c' line='738' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_connector_list_iter_end'>
+        <parameter type-id='40a902ec' name='iter' filepath='drivers/gpu/drm/drm_connector.c' line='738' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='drm_connector_list_iter_next' mangled-name='drm_connector_list_iter_next' filepath='drivers/gpu/drm/drm_connector.c' line='696' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_connector_list_iter_next'>
-        <parameter type-id='40a902ec' name='iter' filepath='drivers/gpu/drm/drm_connector.c' line='696' column='1'/>
+      <function-decl name='drm_connector_list_iter_next' mangled-name='drm_connector_list_iter_next' filepath='drivers/gpu/drm/drm_connector.c' line='699' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_connector_list_iter_next'>
+        <parameter type-id='40a902ec' name='iter' filepath='drivers/gpu/drm/drm_connector.c' line='699' column='1'/>
         <return type-id='4db02c58'/>
       </function-decl>
       <function-decl name='drm_connector_list_update' mangled-name='drm_connector_list_update' filepath='drivers/gpu/drm/drm_modes.c' line='1334' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_connector_list_update'>
         <parameter type-id='4db02c58' name='connector' filepath='drivers/gpu/drm/drm_modes.c' line='1334' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='drm_connector_register' mangled-name='drm_connector_register' filepath='drivers/gpu/drm/drm_connector.c' line='505' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_connector_register'>
-        <parameter type-id='4db02c58' name='connector' filepath='drivers/gpu/drm/drm_connector.c' line='505' column='1'/>
+      <function-decl name='drm_connector_register' mangled-name='drm_connector_register' filepath='drivers/gpu/drm/drm_connector.c' line='508' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_connector_register'>
+        <parameter type-id='4db02c58' name='connector' filepath='drivers/gpu/drm/drm_connector.c' line='508' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='drm_connector_set_panel_orientation' mangled-name='drm_connector_set_panel_orientation' filepath='drivers/gpu/drm/drm_connector.c' line='2263' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_connector_set_panel_orientation'>
-        <parameter type-id='4db02c58' name='connector' filepath='drivers/gpu/drm/drm_connector.c' line='2264' column='1'/>
-        <parameter type-id='59f3d325' name='panel_orientation' filepath='drivers/gpu/drm/drm_connector.c' line='2265' column='1'/>
+      <function-decl name='drm_connector_set_panel_orientation' mangled-name='drm_connector_set_panel_orientation' filepath='drivers/gpu/drm/drm_connector.c' line='2266' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_connector_set_panel_orientation'>
+        <parameter type-id='4db02c58' name='connector' filepath='drivers/gpu/drm/drm_connector.c' line='2267' column='1'/>
+        <parameter type-id='59f3d325' name='panel_orientation' filepath='drivers/gpu/drm/drm_connector.c' line='2268' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='drm_connector_set_path_property' mangled-name='drm_connector_set_path_property' filepath='drivers/gpu/drm/drm_connector.c' line='1956' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_connector_set_path_property'>
-        <parameter type-id='4db02c58' name='connector' filepath='drivers/gpu/drm/drm_connector.c' line='1956' column='1'/>
-        <parameter type-id='80f4b756' name='path' filepath='drivers/gpu/drm/drm_connector.c' line='1957' column='1'/>
+      <function-decl name='drm_connector_set_path_property' mangled-name='drm_connector_set_path_property' filepath='drivers/gpu/drm/drm_connector.c' line='1959' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_connector_set_path_property'>
+        <parameter type-id='4db02c58' name='connector' filepath='drivers/gpu/drm/drm_connector.c' line='1959' column='1'/>
+        <parameter type-id='80f4b756' name='path' filepath='drivers/gpu/drm/drm_connector.c' line='1960' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='drm_connector_set_vrr_capable_property' mangled-name='drm_connector_set_vrr_capable_property' filepath='drivers/gpu/drm/drm_connector.c' line='2233' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_connector_set_vrr_capable_property'>
-        <parameter type-id='4db02c58' name='connector' filepath='drivers/gpu/drm/drm_connector.c' line='2234' column='1'/>
-        <parameter type-id='b50a4934' name='capable' filepath='drivers/gpu/drm/drm_connector.c' line='2234' column='1'/>
+      <function-decl name='drm_connector_set_vrr_capable_property' mangled-name='drm_connector_set_vrr_capable_property' filepath='drivers/gpu/drm/drm_connector.c' line='2236' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_connector_set_vrr_capable_property'>
+        <parameter type-id='4db02c58' name='connector' filepath='drivers/gpu/drm/drm_connector.c' line='2237' column='1'/>
+        <parameter type-id='b50a4934' name='capable' filepath='drivers/gpu/drm/drm_connector.c' line='2237' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='drm_connector_unregister' mangled-name='drm_connector_unregister' filepath='drivers/gpu/drm/drm_connector.c' line='555' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_connector_unregister'>
-        <parameter type-id='4db02c58' name='connector' filepath='drivers/gpu/drm/drm_connector.c' line='555' column='1'/>
+      <function-decl name='drm_connector_unregister' mangled-name='drm_connector_unregister' filepath='drivers/gpu/drm/drm_connector.c' line='558' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_connector_unregister'>
+        <parameter type-id='4db02c58' name='connector' filepath='drivers/gpu/drm/drm_connector.c' line='558' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='drm_connector_update_edid_property' mangled-name='drm_connector_update_edid_property' filepath='drivers/gpu/drm/drm_connector.c' line='2031' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_connector_update_edid_property'>
-        <parameter type-id='4db02c58' name='connector' filepath='drivers/gpu/drm/drm_connector.c' line='2031' column='1'/>
-        <parameter type-id='776adf76' name='edid' filepath='drivers/gpu/drm/drm_connector.c' line='2032' column='1'/>
+      <function-decl name='drm_connector_update_edid_property' mangled-name='drm_connector_update_edid_property' filepath='drivers/gpu/drm/drm_connector.c' line='2034' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_connector_update_edid_property'>
+        <parameter type-id='4db02c58' name='connector' filepath='drivers/gpu/drm/drm_connector.c' line='2034' column='1'/>
+        <parameter type-id='776adf76' name='edid' filepath='drivers/gpu/drm/drm_connector.c' line='2035' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
       <function-decl name='drm_crtc_accurate_vblank_count' mangled-name='drm_crtc_accurate_vblank_count' filepath='drivers/gpu/drm/drm_vblank.c' line='403' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_crtc_accurate_vblank_count'>
@@ -138646,10 +139049,10 @@
         <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_drv.c' line='933' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='drm_display_info_set_bus_formats' mangled-name='drm_display_info_set_bus_formats' filepath='drivers/gpu/drm/drm_connector.c' line='795' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_display_info_set_bus_formats'>
-        <parameter type-id='939a8d9a' name='info' filepath='drivers/gpu/drm/drm_connector.c' line='795' column='1'/>
-        <parameter type-id='aded214c' name='formats' filepath='drivers/gpu/drm/drm_connector.c' line='796' column='1'/>
-        <parameter type-id='f0981eeb' name='num_formats' filepath='drivers/gpu/drm/drm_connector.c' line='797' column='1'/>
+      <function-decl name='drm_display_info_set_bus_formats' mangled-name='drm_display_info_set_bus_formats' filepath='drivers/gpu/drm/drm_connector.c' line='798' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_display_info_set_bus_formats'>
+        <parameter type-id='939a8d9a' name='info' filepath='drivers/gpu/drm/drm_connector.c' line='798' column='1'/>
+        <parameter type-id='aded214c' name='formats' filepath='drivers/gpu/drm/drm_connector.c' line='799' column='1'/>
+        <parameter type-id='f0981eeb' name='num_formats' filepath='drivers/gpu/drm/drm_connector.c' line='800' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
       <function-decl name='drm_display_mode_from_videomode' mangled-name='drm_display_mode_from_videomode' filepath='drivers/gpu/drm/drm_modes.c' line='588' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_display_mode_from_videomode'>
@@ -139338,8 +139741,8 @@
         <parameter type-id='2ae08426' name='vma' filepath='drivers/gpu/drm/drm_gem.c' line='968' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='drm_get_connector_status_name' mangled-name='drm_get_connector_status_name' filepath='drivers/gpu/drm/drm_connector.c' line='611' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_get_connector_status_name'>
-        <parameter type-id='f7b0e1b4' name='status' filepath='drivers/gpu/drm/drm_connector.c' line='611' column='1'/>
+      <function-decl name='drm_get_connector_status_name' mangled-name='drm_get_connector_status_name' filepath='drivers/gpu/drm/drm_connector.c' line='614' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_get_connector_status_name'>
+        <parameter type-id='f7b0e1b4' name='status' filepath='drivers/gpu/drm/drm_connector.c' line='614' column='1'/>
         <return type-id='80f4b756'/>
       </function-decl>
       <function-decl name='drm_get_connector_type_name' mangled-name='drm_get_connector_type_name' filepath='drivers/gpu/drm/drm_connector.c' line='123' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_get_connector_type_name'>
@@ -139563,21 +139966,21 @@
         <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_modes.c' line='70' column='1'/>
         <return type-id='11e02f83'/>
       </function-decl>
-      <function-decl name='drm_mode_create_dp_colorspace_property' mangled-name='drm_mode_create_dp_colorspace_property' filepath='drivers/gpu/drm/drm_connector.c' line='1873' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_mode_create_dp_colorspace_property'>
-        <parameter type-id='4db02c58' name='connector' filepath='drivers/gpu/drm/drm_connector.c' line='1873' column='1'/>
+      <function-decl name='drm_mode_create_dp_colorspace_property' mangled-name='drm_mode_create_dp_colorspace_property' filepath='drivers/gpu/drm/drm_connector.c' line='1876' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_mode_create_dp_colorspace_property'>
+        <parameter type-id='4db02c58' name='connector' filepath='drivers/gpu/drm/drm_connector.c' line='1876' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='drm_mode_create_hdmi_colorspace_property' mangled-name='drm_mode_create_hdmi_colorspace_property' filepath='drivers/gpu/drm/drm_connector.c' line='1844' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_mode_create_hdmi_colorspace_property'>
-        <parameter type-id='4db02c58' name='connector' filepath='drivers/gpu/drm/drm_connector.c' line='1844' column='1'/>
+      <function-decl name='drm_mode_create_hdmi_colorspace_property' mangled-name='drm_mode_create_hdmi_colorspace_property' filepath='drivers/gpu/drm/drm_connector.c' line='1847' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_mode_create_hdmi_colorspace_property'>
+        <parameter type-id='4db02c58' name='connector' filepath='drivers/gpu/drm/drm_connector.c' line='1847' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='drm_mode_create_scaling_mode_property' mangled-name='drm_mode_create_scaling_mode_property' filepath='drivers/gpu/drm/drm_connector.c' line='1608' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_mode_create_scaling_mode_property'>
-        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_connector.c' line='1608' column='1'/>
+      <function-decl name='drm_mode_create_scaling_mode_property' mangled-name='drm_mode_create_scaling_mode_property' filepath='drivers/gpu/drm/drm_connector.c' line='1611' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_mode_create_scaling_mode_property'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_connector.c' line='1611' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='drm_mode_create_tile_group' mangled-name='drm_mode_create_tile_group' filepath='drivers/gpu/drm/drm_connector.c' line='2628' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_mode_create_tile_group'>
-        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_connector.c' line='2628' column='1'/>
-        <parameter type-id='80f4b756' name='topology' filepath='drivers/gpu/drm/drm_connector.c' line='2629' column='1'/>
+      <function-decl name='drm_mode_create_tile_group' mangled-name='drm_mode_create_tile_group' filepath='drivers/gpu/drm/drm_connector.c' line='2631' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_mode_create_tile_group'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_connector.c' line='2631' column='1'/>
+        <parameter type-id='80f4b756' name='topology' filepath='drivers/gpu/drm/drm_connector.c' line='2632' column='1'/>
         <return type-id='c6c44b9f'/>
       </function-decl>
       <function-decl name='drm_mode_crtc_set_gamma_size' mangled-name='drm_mode_crtc_set_gamma_size' filepath='drivers/gpu/drm/drm_color_mgmt.c' line='202' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_mode_crtc_set_gamma_size'>
@@ -140365,47 +140768,47 @@
         <parameter type-id='19c2251e' name='val' filepath='drivers/pci/controller/dwc/pcie-designware.c' line='163' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='edac_device_add_device' mangled-name='edac_device_add_device' filepath='drivers/edac/edac_device.c' line='448' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='edac_device_add_device'>
-        <parameter type-id='b7d8b860' name='edac_dev' filepath='drivers/edac/edac_device.c' line='448' column='1'/>
+      <function-decl name='edac_device_add_device' mangled-name='edac_device_add_device' filepath='drivers/edac/edac_device.c' line='450' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='edac_device_add_device'>
+        <parameter type-id='b7d8b860' name='edac_dev' filepath='drivers/edac/edac_device.c' line='450' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='edac_device_alloc_ctl_info' mangled-name='edac_device_alloc_ctl_info' filepath='drivers/edac/edac_device.c' line='50' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='edac_device_alloc_ctl_info'>
-        <parameter type-id='f0981eeb' name='sz_private' filepath='drivers/edac/edac_device.c' line='51' column='1'/>
-        <parameter type-id='26a90f95' name='edac_device_name' filepath='drivers/edac/edac_device.c' line='52' column='1'/>
-        <parameter type-id='f0981eeb' name='nr_instances' filepath='drivers/edac/edac_device.c' line='52' column='1'/>
-        <parameter type-id='26a90f95' name='edac_block_name' filepath='drivers/edac/edac_device.c' line='53' column='1'/>
-        <parameter type-id='f0981eeb' name='nr_blocks' filepath='drivers/edac/edac_device.c' line='53' column='1'/>
-        <parameter type-id='f0981eeb' name='offset_value' filepath='drivers/edac/edac_device.c' line='54' column='1'/>
-        <parameter type-id='b52eac2e' name='attrib_spec' filepath='drivers/edac/edac_device.c' line='55' column='1'/>
-        <parameter type-id='f0981eeb' name='nr_attrib' filepath='drivers/edac/edac_device.c' line='55' column='1'/>
-        <parameter type-id='95e97e5e' name='device_index' filepath='drivers/edac/edac_device.c' line='56' column='1'/>
+      <function-decl name='edac_device_alloc_ctl_info' mangled-name='edac_device_alloc_ctl_info' filepath='drivers/edac/edac_device.c' line='53' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='edac_device_alloc_ctl_info'>
+        <parameter type-id='f0981eeb' name='sz_private' filepath='drivers/edac/edac_device.c' line='54' column='1'/>
+        <parameter type-id='26a90f95' name='edac_device_name' filepath='drivers/edac/edac_device.c' line='55' column='1'/>
+        <parameter type-id='f0981eeb' name='nr_instances' filepath='drivers/edac/edac_device.c' line='55' column='1'/>
+        <parameter type-id='26a90f95' name='edac_block_name' filepath='drivers/edac/edac_device.c' line='56' column='1'/>
+        <parameter type-id='f0981eeb' name='nr_blocks' filepath='drivers/edac/edac_device.c' line='56' column='1'/>
+        <parameter type-id='f0981eeb' name='offset_value' filepath='drivers/edac/edac_device.c' line='57' column='1'/>
+        <parameter type-id='b52eac2e' name='attrib_spec' filepath='drivers/edac/edac_device.c' line='58' column='1'/>
+        <parameter type-id='f0981eeb' name='nr_attrib' filepath='drivers/edac/edac_device.c' line='58' column='1'/>
+        <parameter type-id='95e97e5e' name='device_index' filepath='drivers/edac/edac_device.c' line='59' column='1'/>
         <return type-id='b7d8b860'/>
       </function-decl>
-      <function-decl name='edac_device_alloc_index' mangled-name='edac_device_alloc_index' filepath='drivers/edac/edac_device.c' line='440' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='edac_device_alloc_index'>
+      <function-decl name='edac_device_alloc_index' mangled-name='edac_device_alloc_index' filepath='drivers/edac/edac_device.c' line='442' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='edac_device_alloc_index'>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='edac_device_del_device' mangled-name='edac_device_del_device' filepath='drivers/edac/edac_device.c' line='504' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='edac_device_del_device'>
-        <parameter type-id='fa0b179b' name='dev' filepath='drivers/edac/edac_device.c' line='504' column='1'/>
+      <function-decl name='edac_device_del_device' mangled-name='edac_device_del_device' filepath='drivers/edac/edac_device.c' line='502' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='edac_device_del_device'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/edac/edac_device.c' line='502' column='1'/>
         <return type-id='b7d8b860'/>
       </function-decl>
-      <function-decl name='edac_device_free_ctl_info' mangled-name='edac_device_free_ctl_info' filepath='drivers/edac/edac_device.c' line='229' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='edac_device_free_ctl_info'>
-        <parameter type-id='b7d8b860' name='ctl_info' filepath='drivers/edac/edac_device.c' line='229' column='1'/>
+      <function-decl name='edac_device_free_ctl_info' mangled-name='edac_device_free_ctl_info' filepath='drivers/edac/edac_device.c' line='232' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='edac_device_free_ctl_info'>
+        <parameter type-id='b7d8b860' name='ctl_info' filepath='drivers/edac/edac_device.c' line='232' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='edac_device_handle_ce_count' mangled-name='edac_device_handle_ce_count' filepath='drivers/edac/edac_device.c' line='558' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='edac_device_handle_ce_count'>
-        <parameter type-id='b7d8b860' name='edac_dev' filepath='drivers/edac/edac_device.c' line='558' column='1'/>
-        <parameter type-id='f0981eeb' name='count' filepath='drivers/edac/edac_device.c' line='559' column='1'/>
-        <parameter type-id='95e97e5e' name='inst_nr' filepath='drivers/edac/edac_device.c' line='559' column='1'/>
-        <parameter type-id='95e97e5e' name='block_nr' filepath='drivers/edac/edac_device.c' line='559' column='1'/>
-        <parameter type-id='80f4b756' name='msg' filepath='drivers/edac/edac_device.c' line='560' column='1'/>
+      <function-decl name='edac_device_handle_ce_count' mangled-name='edac_device_handle_ce_count' filepath='drivers/edac/edac_device.c' line='556' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='edac_device_handle_ce_count'>
+        <parameter type-id='b7d8b860' name='edac_dev' filepath='drivers/edac/edac_device.c' line='556' column='1'/>
+        <parameter type-id='f0981eeb' name='count' filepath='drivers/edac/edac_device.c' line='557' column='1'/>
+        <parameter type-id='95e97e5e' name='inst_nr' filepath='drivers/edac/edac_device.c' line='557' column='1'/>
+        <parameter type-id='95e97e5e' name='block_nr' filepath='drivers/edac/edac_device.c' line='557' column='1'/>
+        <parameter type-id='80f4b756' name='msg' filepath='drivers/edac/edac_device.c' line='558' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='edac_device_handle_ue_count' mangled-name='edac_device_handle_ue_count' filepath='drivers/edac/edac_device.c' line='604' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='edac_device_handle_ue_count'>
-        <parameter type-id='b7d8b860' name='edac_dev' filepath='drivers/edac/edac_device.c' line='604' column='1'/>
-        <parameter type-id='f0981eeb' name='count' filepath='drivers/edac/edac_device.c' line='605' column='1'/>
-        <parameter type-id='95e97e5e' name='inst_nr' filepath='drivers/edac/edac_device.c' line='605' column='1'/>
-        <parameter type-id='95e97e5e' name='block_nr' filepath='drivers/edac/edac_device.c' line='605' column='1'/>
-        <parameter type-id='80f4b756' name='msg' filepath='drivers/edac/edac_device.c' line='606' column='1'/>
+      <function-decl name='edac_device_handle_ue_count' mangled-name='edac_device_handle_ue_count' filepath='drivers/edac/edac_device.c' line='602' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='edac_device_handle_ue_count'>
+        <parameter type-id='b7d8b860' name='edac_dev' filepath='drivers/edac/edac_device.c' line='602' column='1'/>
+        <parameter type-id='f0981eeb' name='count' filepath='drivers/edac/edac_device.c' line='603' column='1'/>
+        <parameter type-id='95e97e5e' name='inst_nr' filepath='drivers/edac/edac_device.c' line='603' column='1'/>
+        <parameter type-id='95e97e5e' name='block_nr' filepath='drivers/edac/edac_device.c' line='603' column='1'/>
+        <parameter type-id='80f4b756' name='msg' filepath='drivers/edac/edac_device.c' line='604' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
       <function-decl name='ehci_handshake' mangled-name='ehci_handshake' filepath='drivers/usb/host/ehci-hcd.c' line='149' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ehci_handshake'>
@@ -140668,27 +141071,27 @@
         <parameter type-id='3275e929' name='event' filepath='kernel/trace/trace_events_trigger.c' line='58' column='1'/>
         <return type-id='21b4096c'/>
       </function-decl>
-      <function-decl name='eventfd_ctx_fdget' mangled-name='eventfd_ctx_fdget' filepath='fs/eventfd.c' line='375' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='eventfd_ctx_fdget'>
-        <parameter type-id='95e97e5e' name='fd' filepath='fs/eventfd.c' line='375' column='1'/>
+      <function-decl name='eventfd_ctx_fdget' mangled-name='eventfd_ctx_fdget' filepath='fs/eventfd.c' line='380' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='eventfd_ctx_fdget'>
+        <parameter type-id='95e97e5e' name='fd' filepath='fs/eventfd.c' line='380' column='1'/>
         <return type-id='71f2e203'/>
       </function-decl>
-      <function-decl name='eventfd_ctx_fileget' mangled-name='eventfd_ctx_fileget' filepath='fs/eventfd.c' line='396' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='eventfd_ctx_fileget'>
-        <parameter type-id='77e79a4b' name='file' filepath='fs/eventfd.c' line='396' column='1'/>
+      <function-decl name='eventfd_ctx_fileget' mangled-name='eventfd_ctx_fileget' filepath='fs/eventfd.c' line='401' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='eventfd_ctx_fileget'>
+        <parameter type-id='77e79a4b' name='file' filepath='fs/eventfd.c' line='401' column='1'/>
         <return type-id='71f2e203'/>
       </function-decl>
-      <function-decl name='eventfd_ctx_put' mangled-name='eventfd_ctx_put' filepath='fs/eventfd.c' line='110' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='eventfd_ctx_put'>
-        <parameter type-id='71f2e203' name='ctx' filepath='fs/eventfd.c' line='110' column='1'/>
+      <function-decl name='eventfd_ctx_put' mangled-name='eventfd_ctx_put' filepath='fs/eventfd.c' line='115' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='eventfd_ctx_put'>
+        <parameter type-id='71f2e203' name='ctx' filepath='fs/eventfd.c' line='115' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='eventfd_ctx_remove_wait_queue' mangled-name='eventfd_ctx_remove_wait_queue' filepath='fs/eventfd.c' line='205' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='eventfd_ctx_remove_wait_queue'>
-        <parameter type-id='71f2e203' name='ctx' filepath='fs/eventfd.c' line='205' column='1'/>
-        <parameter type-id='ba9aa326' name='wait' filepath='fs/eventfd.c' line='205' column='1'/>
-        <parameter type-id='30dcd536' name='cnt' filepath='fs/eventfd.c' line='206' column='1'/>
+      <function-decl name='eventfd_ctx_remove_wait_queue' mangled-name='eventfd_ctx_remove_wait_queue' filepath='fs/eventfd.c' line='210' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='eventfd_ctx_remove_wait_queue'>
+        <parameter type-id='71f2e203' name='ctx' filepath='fs/eventfd.c' line='210' column='1'/>
+        <parameter type-id='ba9aa326' name='wait' filepath='fs/eventfd.c' line='210' column='1'/>
+        <parameter type-id='30dcd536' name='cnt' filepath='fs/eventfd.c' line='211' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='eventfd_signal' mangled-name='eventfd_signal' filepath='fs/eventfd.c' line='60' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='eventfd_signal'>
-        <parameter type-id='71f2e203' name='ctx' filepath='fs/eventfd.c' line='60' column='1'/>
-        <parameter type-id='d3130597' name='n' filepath='fs/eventfd.c' line='60' column='1'/>
+      <function-decl name='eventfd_signal' mangled-name='eventfd_signal' filepath='fs/eventfd.c' line='88' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='eventfd_signal'>
+        <parameter type-id='71f2e203' name='ctx' filepath='fs/eventfd.c' line='88' column='1'/>
+        <parameter type-id='d3130597' name='n' filepath='fs/eventfd.c' line='88' column='1'/>
         <return type-id='d3130597'/>
       </function-decl>
       <function-decl name='evict_inodes' mangled-name='evict_inodes' filepath='fs/inode.c' line='634' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='evict_inodes'>
@@ -140930,6 +141333,11 @@
         <parameter type-id='eaa32e2f' name='data' filepath='fs/inode.c' line='1442' column='1'/>
         <return type-id='7e666abe'/>
       </function-decl>
+      <function-decl name='find_iova' mangled-name='find_iova' filepath='drivers/iommu/iova.c' line='524' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='find_iova'>
+        <parameter type-id='0c2c419d' name='iovad' filepath='drivers/iommu/iova.c' line='524' column='1'/>
+        <parameter type-id='7359adad' name='pfn' filepath='drivers/iommu/iova.c' line='524' column='1'/>
+        <return type-id='b2ea0a72'/>
+      </function-decl>
       <function-decl name='find_pid_ns' mangled-name='find_pid_ns' filepath='kernel/pid.c' line='309' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='find_pid_ns'>
         <parameter type-id='95e97e5e' name='nr' filepath='kernel/pid.c' line='309' column='1'/>
         <parameter type-id='b816e1d0' name='ns' filepath='kernel/pid.c' line='309' column='1'/>
@@ -141022,10 +141430,10 @@
         <parameter type-id='242e3d19' name='wq' filepath='kernel/workqueue.c' line='2821' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='follow_pfn' mangled-name='follow_pfn' filepath='mm/memory.c' line='5404' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='follow_pfn'>
-        <parameter type-id='2ae08426' name='vma' filepath='mm/memory.c' line='5404' column='1'/>
-        <parameter type-id='7359adad' name='address' filepath='mm/memory.c' line='5404' column='1'/>
-        <parameter type-id='1d2c2b85' name='pfn' filepath='mm/memory.c' line='5405' column='1'/>
+      <function-decl name='follow_pfn' mangled-name='follow_pfn' filepath='mm/memory.c' line='5417' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='follow_pfn'>
+        <parameter type-id='2ae08426' name='vma' filepath='mm/memory.c' line='5417' column='1'/>
+        <parameter type-id='7359adad' name='address' filepath='mm/memory.c' line='5417' column='1'/>
+        <parameter type-id='1d2c2b85' name='pfn' filepath='mm/memory.c' line='5418' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
       <var-decl name='font_vga_8x16' type-id='d2d06e23' mangled-name='font_vga_8x16' visibility='default' filepath='lib/fonts/font_8x16.c' line='4625' column='1' elf-symbol-id='font_vga_8x16'/>
@@ -141063,9 +141471,9 @@
         <parameter type-id='68a2d05b' name='dev' filepath='drivers/net/can/dev/dev.c' line='293' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='free_contig_range' mangled-name='free_contig_range' filepath='mm/page_alloc.c' line='9477' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='free_contig_range'>
-        <parameter type-id='7359adad' name='pfn' filepath='mm/page_alloc.c' line='9477' column='1'/>
-        <parameter type-id='7359adad' name='nr_pages' filepath='mm/page_alloc.c' line='9477' column='1'/>
+      <function-decl name='free_contig_range' mangled-name='free_contig_range' filepath='mm/page_alloc.c' line='9480' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='free_contig_range'>
+        <parameter type-id='7359adad' name='pfn' filepath='mm/page_alloc.c' line='9480' column='1'/>
+        <parameter type-id='7359adad' name='nr_pages' filepath='mm/page_alloc.c' line='9480' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
       <function-decl name='free_io_pgtable_ops' mangled-name='free_io_pgtable_ops' filepath='drivers/iommu/io-pgtable.c' line='63' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='free_io_pgtable_ops'>
@@ -141081,14 +141489,14 @@
         <parameter type-id='68a2d05b' name='dev' filepath='net/core/dev.c' line='10924' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='free_pages' mangled-name='free_pages' filepath='mm/page_alloc.c' line='5649' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='free_pages'>
-        <parameter type-id='7359adad' name='addr' filepath='mm/page_alloc.c' line='5649' column='1'/>
-        <parameter type-id='f0981eeb' name='order' filepath='mm/page_alloc.c' line='5649' column='1'/>
+      <function-decl name='free_pages' mangled-name='free_pages' filepath='mm/page_alloc.c' line='5652' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='free_pages'>
+        <parameter type-id='7359adad' name='addr' filepath='mm/page_alloc.c' line='5652' column='1'/>
+        <parameter type-id='f0981eeb' name='order' filepath='mm/page_alloc.c' line='5652' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='free_pages_exact' mangled-name='free_pages_exact' filepath='mm/page_alloc.c' line='5862' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='free_pages_exact'>
-        <parameter type-id='eaa32e2f' name='virt' filepath='mm/page_alloc.c' line='5862' column='1'/>
-        <parameter type-id='b59d7dce' name='size' filepath='mm/page_alloc.c' line='5862' column='1'/>
+      <function-decl name='free_pages_exact' mangled-name='free_pages_exact' filepath='mm/page_alloc.c' line='5865' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='free_pages_exact'>
+        <parameter type-id='eaa32e2f' name='virt' filepath='mm/page_alloc.c' line='5865' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='mm/page_alloc.c' line='5865' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
       <function-decl name='free_percpu' mangled-name='free_percpu' filepath='mm/percpu.c' line='2264' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='free_percpu'>
@@ -141424,8 +141832,8 @@
         <parameter type-id='b88dd945' name='bdev' filepath='block/bdev.c' line='212' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='ftrace_dump' mangled-name='ftrace_dump' filepath='kernel/trace/trace.c' line='9883' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ftrace_dump'>
-        <parameter type-id='9be0e7e4' name='oops_dump_mode' filepath='kernel/trace/trace.c' line='9883' column='1'/>
+      <function-decl name='ftrace_dump' mangled-name='ftrace_dump' filepath='kernel/trace/trace.c' line='9896' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ftrace_dump'>
+        <parameter type-id='9be0e7e4' name='oops_dump_mode' filepath='kernel/trace/trace.c' line='9896' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
       <function-decl name='full_name_hash' mangled-name='full_name_hash' filepath='fs/namei.c' line='2087' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='full_name_hash'>
@@ -141434,11 +141842,11 @@
         <parameter type-id='f0981eeb' name='len' filepath='fs/namei.c' line='2087' column='1'/>
         <return type-id='f0981eeb'/>
       </function-decl>
-      <function-decl name='fwnode_connection_find_match' mangled-name='fwnode_connection_find_match' filepath='drivers/base/property.c' line='1342' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fwnode_connection_find_match'>
-        <parameter type-id='4a935625' name='fwnode' filepath='drivers/base/property.c' line='1342' column='1'/>
-        <parameter type-id='80f4b756' name='con_id' filepath='drivers/base/property.c' line='1343' column='1'/>
-        <parameter type-id='eaa32e2f' name='data' filepath='drivers/base/property.c' line='1343' column='1'/>
-        <parameter type-id='2517d133' name='match' filepath='drivers/base/property.c' line='1344' column='1'/>
+      <function-decl name='fwnode_connection_find_match' mangled-name='fwnode_connection_find_match' filepath='drivers/base/property.c' line='1348' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fwnode_connection_find_match'>
+        <parameter type-id='4a935625' name='fwnode' filepath='drivers/base/property.c' line='1348' column='1'/>
+        <parameter type-id='80f4b756' name='con_id' filepath='drivers/base/property.c' line='1349' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='drivers/base/property.c' line='1349' column='1'/>
+        <parameter type-id='2517d133' name='match' filepath='drivers/base/property.c' line='1350' column='1'/>
         <return type-id='eaa32e2f'/>
       </function-decl>
       <function-decl name='fwnode_device_is_available' mangled-name='fwnode_device_is_available' filepath='drivers/base/property.c' line='858' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fwnode_device_is_available'>
@@ -141477,21 +141885,21 @@
         <parameter type-id='4a935625' name='prev' filepath='drivers/base/property.c' line='1056' column='1'/>
         <return type-id='4a935625'/>
       </function-decl>
-      <function-decl name='fwnode_graph_get_port_parent' mangled-name='fwnode_graph_get_port_parent' filepath='drivers/base/property.c' line='1088' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fwnode_graph_get_port_parent'>
-        <parameter type-id='7837cd88' name='endpoint' filepath='drivers/base/property.c' line='1088' column='1'/>
+      <function-decl name='fwnode_graph_get_port_parent' mangled-name='fwnode_graph_get_port_parent' filepath='drivers/base/property.c' line='1094' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fwnode_graph_get_port_parent'>
+        <parameter type-id='7837cd88' name='endpoint' filepath='drivers/base/property.c' line='1094' column='1'/>
         <return type-id='4a935625'/>
       </function-decl>
-      <function-decl name='fwnode_graph_get_remote_endpoint' mangled-name='fwnode_graph_get_remote_endpoint' filepath='drivers/base/property.c' line='1141' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fwnode_graph_get_remote_endpoint'>
-        <parameter type-id='7837cd88' name='fwnode' filepath='drivers/base/property.c' line='1141' column='1'/>
+      <function-decl name='fwnode_graph_get_remote_endpoint' mangled-name='fwnode_graph_get_remote_endpoint' filepath='drivers/base/property.c' line='1147' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fwnode_graph_get_remote_endpoint'>
+        <parameter type-id='7837cd88' name='fwnode' filepath='drivers/base/property.c' line='1147' column='1'/>
         <return type-id='4a935625'/>
       </function-decl>
-      <function-decl name='fwnode_graph_get_remote_port_parent' mangled-name='fwnode_graph_get_remote_port_parent' filepath='drivers/base/property.c' line='1108' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fwnode_graph_get_remote_port_parent'>
-        <parameter type-id='7837cd88' name='fwnode' filepath='drivers/base/property.c' line='1108' column='1'/>
+      <function-decl name='fwnode_graph_get_remote_port_parent' mangled-name='fwnode_graph_get_remote_port_parent' filepath='drivers/base/property.c' line='1114' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fwnode_graph_get_remote_port_parent'>
+        <parameter type-id='7837cd88' name='fwnode' filepath='drivers/base/property.c' line='1114' column='1'/>
         <return type-id='4a935625'/>
       </function-decl>
-      <function-decl name='fwnode_graph_parse_endpoint' mangled-name='fwnode_graph_parse_endpoint' filepath='drivers/base/property.c' line='1269' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fwnode_graph_parse_endpoint'>
-        <parameter type-id='7837cd88' name='fwnode' filepath='drivers/base/property.c' line='1269' column='1'/>
-        <parameter type-id='41b1c13c' name='endpoint' filepath='drivers/base/property.c' line='1270' column='1'/>
+      <function-decl name='fwnode_graph_parse_endpoint' mangled-name='fwnode_graph_parse_endpoint' filepath='drivers/base/property.c' line='1275' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fwnode_graph_parse_endpoint'>
+        <parameter type-id='7837cd88' name='fwnode' filepath='drivers/base/property.c' line='1275' column='1'/>
+        <parameter type-id='41b1c13c' name='endpoint' filepath='drivers/base/property.c' line='1276' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
       <function-decl name='fwnode_handle_get' mangled-name='fwnode_handle_get' filepath='drivers/base/property.c' line='828' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fwnode_handle_get'>
@@ -141712,8 +142120,8 @@
         <parameter type-id='69bf7bee' name='size' filepath='fs/buffer.c' line='2351' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='generic_device_group' mangled-name='generic_device_group' filepath='drivers/iommu/iommu.c' line='1438' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='generic_device_group'>
-        <parameter type-id='fa0b179b' name='dev' filepath='drivers/iommu/iommu.c' line='1438' column='1'/>
+      <function-decl name='generic_device_group' mangled-name='generic_device_group' filepath='drivers/iommu/iommu.c' line='1454' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='generic_device_group'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/iommu/iommu.c' line='1454' column='1'/>
         <return type-id='0b19fc54'/>
       </function-decl>
       <function-decl name='generic_error_remove_page' mangled-name='generic_error_remove_page' filepath='mm/truncate.c' line='226' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='generic_error_remove_page'>
@@ -141813,9 +142221,9 @@
         <parameter type-id='f0981eeb' name='irq' filepath='kernel/irq/irqdesc.c' line='659' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='generic_iommu_put_resv_regions' mangled-name='generic_iommu_put_resv_regions' filepath='drivers/iommu/iommu.c' line='2832' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='generic_iommu_put_resv_regions'>
-        <parameter type-id='fa0b179b' name='dev' filepath='drivers/iommu/iommu.c' line='2832' column='1'/>
-        <parameter type-id='e84b031a' name='list' filepath='drivers/iommu/iommu.c' line='2832' column='1'/>
+      <function-decl name='generic_iommu_put_resv_regions' mangled-name='generic_iommu_put_resv_regions' filepath='drivers/iommu/iommu.c' line='2848' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='generic_iommu_put_resv_regions'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/iommu/iommu.c' line='2848' column='1'/>
+        <parameter type-id='e84b031a' name='list' filepath='drivers/iommu/iommu.c' line='2848' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
       <function-decl name='generic_key_instantiate' mangled-name='generic_key_instantiate' filepath='security/keys/key.c' line='1121' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='generic_key_instantiate'>
@@ -142133,6 +142541,10 @@
         <parameter type-id='eaa32e2f' name='private' filepath='mm/slub.c' line='696' column='1'/>
         <return type-id='7359adad'/>
       </function-decl>
+      <function-decl name='get_fs_type' mangled-name='get_fs_type' filepath='fs/filesystems.c' line='273' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_fs_type'>
+        <parameter type-id='80f4b756' name='name' filepath='fs/filesystems.c' line='273' column='1'/>
+        <return type-id='21e53d44'/>
+      </function-decl>
       <function-decl name='get_governor_parent_kobj' mangled-name='get_governor_parent_kobj' filepath='drivers/cpufreq/cpufreq.c' line='117' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_governor_parent_kobj'>
         <parameter type-id='343c3ae4' name='policy' filepath='drivers/cpufreq/cpufreq.c' line='117' column='1'/>
         <return type-id='d30bdc51'/>
@@ -142152,6 +142564,9 @@
         <parameter type-id='587f89d2' name='pid' filepath='net/core/net_namespace.c' line='681' column='1'/>
         <return type-id='a2bff676'/>
       </function-decl>
+      <function-decl name='get_next_ino' mangled-name='get_next_ino' filepath='fs/inode.c' line='901' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_next_ino'>
+        <return type-id='f0981eeb'/>
+      </function-decl>
       <function-decl name='get_option' mangled-name='get_option' filepath='lib/cmdline.c' line='56' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_option'>
         <parameter type-id='9b23c9ad' name='str' filepath='lib/cmdline.c' line='56' column='1'/>
         <parameter type-id='7292109c' name='pint' filepath='lib/cmdline.c' line='56' column='1'/>
@@ -142231,6 +142646,11 @@
         <parameter type-id='30341fa1' name='fill_super' filepath='fs/super.c' line='1230' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
+      <function-decl name='get_tree_single' mangled-name='get_tree_single' filepath='fs/super.c' line='1175' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_tree_single'>
+        <parameter type-id='5760dcb0' name='fc' filepath='fs/super.c' line='1175' column='1'/>
+        <parameter type-id='30341fa1' name='fill_super' filepath='fs/super.c' line='1176' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
       <function-decl name='get_unmapped_area' mangled-name='get_unmapped_area' filepath='mm/mmap.c' line='2239' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_unmapped_area'>
         <parameter type-id='77e79a4b' name='file' filepath='mm/mmap.c' line='2239' column='1'/>
         <parameter type-id='7359adad' name='addr' filepath='mm/mmap.c' line='2239' column='1'/>
@@ -142399,26 +142819,26 @@
         <parameter type-id='80f4b756' name='str' filepath='lib/glob.c' line='40' column='1'/>
         <return type-id='b50a4934'/>
       </function-decl>
-      <function-decl name='gov_attr_set_get' mangled-name='gov_attr_set_get' filepath='drivers/cpufreq/cpufreq_governor_attr_set.c' line='57' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gov_attr_set_get'>
-        <parameter type-id='902fed1a' name='attr_set' filepath='drivers/cpufreq/cpufreq_governor_attr_set.c' line='57' column='1'/>
-        <parameter type-id='e84b031a' name='list_node' filepath='drivers/cpufreq/cpufreq_governor_attr_set.c' line='57' column='1'/>
+      <function-decl name='gov_attr_set_get' mangled-name='gov_attr_set_get' filepath='drivers/cpufreq/cpufreq_governor_attr_set.c' line='52' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gov_attr_set_get'>
+        <parameter type-id='902fed1a' name='attr_set' filepath='drivers/cpufreq/cpufreq_governor_attr_set.c' line='52' column='1'/>
+        <parameter type-id='e84b031a' name='list_node' filepath='drivers/cpufreq/cpufreq_governor_attr_set.c' line='52' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='gov_attr_set_init' mangled-name='gov_attr_set_init' filepath='drivers/cpufreq/cpufreq_governor_attr_set.c' line='48' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gov_attr_set_init'>
-        <parameter type-id='902fed1a' name='attr_set' filepath='drivers/cpufreq/cpufreq_governor_attr_set.c' line='48' column='1'/>
-        <parameter type-id='e84b031a' name='list_node' filepath='drivers/cpufreq/cpufreq_governor_attr_set.c' line='48' column='1'/>
+      <function-decl name='gov_attr_set_init' mangled-name='gov_attr_set_init' filepath='drivers/cpufreq/cpufreq_governor_attr_set.c' line='43' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gov_attr_set_init'>
+        <parameter type-id='902fed1a' name='attr_set' filepath='drivers/cpufreq/cpufreq_governor_attr_set.c' line='43' column='1'/>
+        <parameter type-id='e84b031a' name='list_node' filepath='drivers/cpufreq/cpufreq_governor_attr_set.c' line='43' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='gov_attr_set_put' mangled-name='gov_attr_set_put' filepath='drivers/cpufreq/cpufreq_governor_attr_set.c' line='66' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gov_attr_set_put'>
-        <parameter type-id='902fed1a' name='attr_set' filepath='drivers/cpufreq/cpufreq_governor_attr_set.c' line='66' column='1'/>
-        <parameter type-id='e84b031a' name='list_node' filepath='drivers/cpufreq/cpufreq_governor_attr_set.c' line='66' column='1'/>
+      <function-decl name='gov_attr_set_put' mangled-name='gov_attr_set_put' filepath='drivers/cpufreq/cpufreq_governor_attr_set.c' line='61' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gov_attr_set_put'>
+        <parameter type-id='902fed1a' name='attr_set' filepath='drivers/cpufreq/cpufreq_governor_attr_set.c' line='61' column='1'/>
+        <parameter type-id='e84b031a' name='list_node' filepath='drivers/cpufreq/cpufreq_governor_attr_set.c' line='61' column='1'/>
         <return type-id='f0981eeb'/>
       </function-decl>
       <function-decl name='gov_update_cpu_data' mangled-name='gov_update_cpu_data' filepath='drivers/cpufreq/cpufreq_governor.c' line='95' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gov_update_cpu_data'>
         <parameter type-id='280461d5' name='dbs_data' filepath='drivers/cpufreq/cpufreq_governor.c' line='95' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <var-decl name='governor_sysfs_ops' type-id='0f840455' mangled-name='governor_sysfs_ops' visibility='default' filepath='drivers/cpufreq/cpufreq_governor_attr_set.c' line='42' column='1' elf-symbol-id='governor_sysfs_ops'/>
+      <var-decl name='governor_sysfs_ops' type-id='0f840455' mangled-name='governor_sysfs_ops' visibility='default' filepath='drivers/cpufreq/cpufreq_governor_attr_set.c' line='37' column='1' elf-symbol-id='governor_sysfs_ops'/>
       <function-decl name='gpio_free' mangled-name='gpio_free' filepath='drivers/gpio/gpiolib-legacy.c' line='9' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gpio_free'>
         <parameter type-id='f0981eeb' name='gpio' filepath='drivers/gpio/gpiolib-legacy.c' line='9' column='1'/>
         <return type-id='48b5725f'/>
@@ -142657,40 +143077,40 @@
         <parameter type-id='0fbf3cfd' name='skb' filepath='net/core/gro_cells.c' line='12' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='gs_alloc_req' mangled-name='gs_alloc_req' filepath='drivers/usb/gadget/function/u_serial.c' line='162' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gs_alloc_req'>
-        <parameter type-id='63a08bf7' name='ep' filepath='drivers/usb/gadget/function/u_serial.c' line='162' column='1'/>
-        <parameter type-id='f0981eeb' name='len' filepath='drivers/usb/gadget/function/u_serial.c' line='162' column='1'/>
-        <parameter type-id='3eb7c31c' name='kmalloc_flags' filepath='drivers/usb/gadget/function/u_serial.c' line='162' column='1'/>
+      <function-decl name='gs_alloc_req' mangled-name='gs_alloc_req' filepath='drivers/usb/gadget/function/u_serial.c' line='165' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gs_alloc_req'>
+        <parameter type-id='63a08bf7' name='ep' filepath='drivers/usb/gadget/function/u_serial.c' line='165' column='1'/>
+        <parameter type-id='f0981eeb' name='len' filepath='drivers/usb/gadget/function/u_serial.c' line='165' column='1'/>
+        <parameter type-id='3eb7c31c' name='kmalloc_flags' filepath='drivers/usb/gadget/function/u_serial.c' line='165' column='1'/>
         <return type-id='1a494567'/>
       </function-decl>
-      <function-decl name='gs_free_req' mangled-name='gs_free_req' filepath='drivers/usb/gadget/function/u_serial.c' line='186' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gs_free_req'>
-        <parameter type-id='63a08bf7' name='ep' filepath='drivers/usb/gadget/function/u_serial.c' line='186' column='1'/>
-        <parameter type-id='1a494567' name='req' filepath='drivers/usb/gadget/function/u_serial.c' line='186' column='1'/>
+      <function-decl name='gs_free_req' mangled-name='gs_free_req' filepath='drivers/usb/gadget/function/u_serial.c' line='189' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gs_free_req'>
+        <parameter type-id='63a08bf7' name='ep' filepath='drivers/usb/gadget/function/u_serial.c' line='189' column='1'/>
+        <parameter type-id='1a494567' name='req' filepath='drivers/usb/gadget/function/u_serial.c' line='189' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='gserial_alloc_line' mangled-name='gserial_alloc_line' filepath='drivers/usb/gadget/function/u_serial.c' line='1261' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gserial_alloc_line'>
-        <parameter type-id='cf536864' name='line_num' filepath='drivers/usb/gadget/function/u_serial.c' line='1261' column='1'/>
+      <function-decl name='gserial_alloc_line' mangled-name='gserial_alloc_line' filepath='drivers/usb/gadget/function/u_serial.c' line='1264' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gserial_alloc_line'>
+        <parameter type-id='cf536864' name='line_num' filepath='drivers/usb/gadget/function/u_serial.c' line='1264' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='gserial_connect' mangled-name='gserial_connect' filepath='drivers/usb/gadget/function/u_serial.c' line='1293' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gserial_connect'>
-        <parameter type-id='3921c1a0' name='gser' filepath='drivers/usb/gadget/function/u_serial.c' line='1293' column='1'/>
-        <parameter type-id='f9b06939' name='port_num' filepath='drivers/usb/gadget/function/u_serial.c' line='1293' column='1'/>
+      <function-decl name='gserial_connect' mangled-name='gserial_connect' filepath='drivers/usb/gadget/function/u_serial.c' line='1296' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gserial_connect'>
+        <parameter type-id='3921c1a0' name='gser' filepath='drivers/usb/gadget/function/u_serial.c' line='1296' column='1'/>
+        <parameter type-id='f9b06939' name='port_num' filepath='drivers/usb/gadget/function/u_serial.c' line='1296' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='gserial_disconnect' mangled-name='gserial_disconnect' filepath='drivers/usb/gadget/function/u_serial.c' line='1369' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gserial_disconnect'>
-        <parameter type-id='3921c1a0' name='gser' filepath='drivers/usb/gadget/function/u_serial.c' line='1369' column='1'/>
+      <function-decl name='gserial_disconnect' mangled-name='gserial_disconnect' filepath='drivers/usb/gadget/function/u_serial.c' line='1372' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gserial_disconnect'>
+        <parameter type-id='3921c1a0' name='gser' filepath='drivers/usb/gadget/function/u_serial.c' line='1372' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='gserial_free_line' mangled-name='gserial_free_line' filepath='drivers/usb/gadget/function/u_serial.c' line='1196' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gserial_free_line'>
-        <parameter type-id='002ac4a6' name='port_num' filepath='drivers/usb/gadget/function/u_serial.c' line='1196' column='1'/>
+      <function-decl name='gserial_free_line' mangled-name='gserial_free_line' filepath='drivers/usb/gadget/function/u_serial.c' line='1199' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gserial_free_line'>
+        <parameter type-id='002ac4a6' name='port_num' filepath='drivers/usb/gadget/function/u_serial.c' line='1199' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='gserial_resume' mangled-name='gserial_resume' filepath='drivers/usb/gadget/function/u_serial.c' line='1425' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gserial_resume'>
-        <parameter type-id='3921c1a0' name='gser' filepath='drivers/usb/gadget/function/u_serial.c' line='1425' column='1'/>
+      <function-decl name='gserial_resume' mangled-name='gserial_resume' filepath='drivers/usb/gadget/function/u_serial.c' line='1431' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gserial_resume'>
+        <parameter type-id='3921c1a0' name='gser' filepath='drivers/usb/gadget/function/u_serial.c' line='1431' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='gserial_suspend' mangled-name='gserial_suspend' filepath='drivers/usb/gadget/function/u_serial.c' line='1414' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gserial_suspend'>
-        <parameter type-id='3921c1a0' name='gser' filepath='drivers/usb/gadget/function/u_serial.c' line='1414' column='1'/>
+      <function-decl name='gserial_suspend' mangled-name='gserial_suspend' filepath='drivers/usb/gadget/function/u_serial.c' line='1420' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gserial_suspend'>
+        <parameter type-id='3921c1a0' name='gser' filepath='drivers/usb/gadget/function/u_serial.c' line='1420' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
       <function-decl name='guid_gen' mangled-name='guid_gen' filepath='lib/uuid.c' line='60' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='guid_gen'>
@@ -142737,38 +143157,38 @@
       <function-decl name='have_governor_per_policy' mangled-name='have_governor_per_policy' filepath='drivers/cpufreq/cpufreq.c' line='109' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='have_governor_per_policy'>
         <return type-id='b50a4934'/>
       </function-decl>
-      <function-decl name='hci_alloc_dev_priv' mangled-name='hci_alloc_dev_priv' filepath='net/bluetooth/hci_core.c' line='3762' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='hci_alloc_dev_priv'>
-        <parameter type-id='95e97e5e' name='sizeof_priv' filepath='net/bluetooth/hci_core.c' line='3762' column='1'/>
+      <function-decl name='hci_alloc_dev_priv' mangled-name='hci_alloc_dev_priv' filepath='net/bluetooth/hci_core.c' line='3763' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='hci_alloc_dev_priv'>
+        <parameter type-id='95e97e5e' name='sizeof_priv' filepath='net/bluetooth/hci_core.c' line='3763' column='1'/>
         <return type-id='9ad862e7'/>
       </function-decl>
-      <function-decl name='hci_cmd_sync' mangled-name='hci_cmd_sync' filepath='net/bluetooth/hci_core.c' line='4330' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='hci_cmd_sync'>
-        <parameter type-id='9ad862e7' name='hdev' filepath='net/bluetooth/hci_core.c' line='4330' column='1'/>
-        <parameter type-id='1dc6a898' name='opcode' filepath='net/bluetooth/hci_core.c' line='4330' column='1'/>
-        <parameter type-id='19c2251e' name='plen' filepath='net/bluetooth/hci_core.c' line='4330' column='1'/>
-        <parameter type-id='eaa32e2f' name='param' filepath='net/bluetooth/hci_core.c' line='4331' column='1'/>
-        <parameter type-id='19c2251e' name='timeout' filepath='net/bluetooth/hci_core.c' line='4331' column='1'/>
+      <function-decl name='hci_cmd_sync' mangled-name='hci_cmd_sync' filepath='net/bluetooth/hci_core.c' line='4331' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='hci_cmd_sync'>
+        <parameter type-id='9ad862e7' name='hdev' filepath='net/bluetooth/hci_core.c' line='4331' column='1'/>
+        <parameter type-id='1dc6a898' name='opcode' filepath='net/bluetooth/hci_core.c' line='4331' column='1'/>
+        <parameter type-id='19c2251e' name='plen' filepath='net/bluetooth/hci_core.c' line='4331' column='1'/>
+        <parameter type-id='eaa32e2f' name='param' filepath='net/bluetooth/hci_core.c' line='4332' column='1'/>
+        <parameter type-id='19c2251e' name='timeout' filepath='net/bluetooth/hci_core.c' line='4332' column='1'/>
         <return type-id='0fbf3cfd'/>
       </function-decl>
-      <function-decl name='hci_free_dev' mangled-name='hci_free_dev' filepath='net/bluetooth/hci_core.c' line='3890' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='hci_free_dev'>
-        <parameter type-id='9ad862e7' name='hdev' filepath='net/bluetooth/hci_core.c' line='3890' column='1'/>
+      <function-decl name='hci_free_dev' mangled-name='hci_free_dev' filepath='net/bluetooth/hci_core.c' line='3891' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='hci_free_dev'>
+        <parameter type-id='9ad862e7' name='hdev' filepath='net/bluetooth/hci_core.c' line='3891' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='hci_recv_diag' mangled-name='hci_recv_diag' filepath='net/bluetooth/hci_core.c' line='4159' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='hci_recv_diag'>
-        <parameter type-id='9ad862e7' name='hdev' filepath='net/bluetooth/hci_core.c' line='4159' column='1'/>
-        <parameter type-id='0fbf3cfd' name='skb' filepath='net/bluetooth/hci_core.c' line='4159' column='1'/>
+      <function-decl name='hci_recv_diag' mangled-name='hci_recv_diag' filepath='net/bluetooth/hci_core.c' line='4160' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='hci_recv_diag'>
+        <parameter type-id='9ad862e7' name='hdev' filepath='net/bluetooth/hci_core.c' line='4160' column='1'/>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/bluetooth/hci_core.c' line='4160' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='hci_recv_frame' mangled-name='hci_recv_frame' filepath='net/bluetooth/hci_core.c' line='4129' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='hci_recv_frame'>
-        <parameter type-id='9ad862e7' name='hdev' filepath='net/bluetooth/hci_core.c' line='4129' column='1'/>
-        <parameter type-id='0fbf3cfd' name='skb' filepath='net/bluetooth/hci_core.c' line='4129' column='1'/>
+      <function-decl name='hci_recv_frame' mangled-name='hci_recv_frame' filepath='net/bluetooth/hci_core.c' line='4130' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='hci_recv_frame'>
+        <parameter type-id='9ad862e7' name='hdev' filepath='net/bluetooth/hci_core.c' line='4130' column='1'/>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/bluetooth/hci_core.c' line='4130' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='hci_register_dev' mangled-name='hci_register_dev' filepath='net/bluetooth/hci_core.c' line='3898' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='hci_register_dev'>
-        <parameter type-id='9ad862e7' name='hdev' filepath='net/bluetooth/hci_core.c' line='3898' column='1'/>
+      <function-decl name='hci_register_dev' mangled-name='hci_register_dev' filepath='net/bluetooth/hci_core.c' line='3899' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='hci_register_dev'>
+        <parameter type-id='9ad862e7' name='hdev' filepath='net/bluetooth/hci_core.c' line='3899' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='hci_unregister_dev' mangled-name='hci_unregister_dev' filepath='net/bluetooth/hci_core.c' line='4014' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='hci_unregister_dev'>
-        <parameter type-id='9ad862e7' name='hdev' filepath='net/bluetooth/hci_core.c' line='4014' column='1'/>
+      <function-decl name='hci_unregister_dev' mangled-name='hci_unregister_dev' filepath='net/bluetooth/hci_core.c' line='4015' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='hci_unregister_dev'>
+        <parameter type-id='9ad862e7' name='hdev' filepath='net/bluetooth/hci_core.c' line='4015' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
       <function-decl name='hdmi_audio_infoframe_init' mangled-name='hdmi_audio_infoframe_init' filepath='drivers/video/hdmi.c' line='353' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='hdmi_audio_infoframe_init'>
@@ -143599,10 +144019,18 @@
         <parameter type-id='80f4b756' name='channel_name' filepath='drivers/iio/inkern.c' line='340' column='1'/>
         <return type-id='2712709a'/>
       </function-decl>
+      <function-decl name='iio_channel_get_all' mangled-name='iio_channel_get_all' filepath='drivers/iio/inkern.c' line='409' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iio_channel_get_all'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/iio/inkern.c' line='409' column='1'/>
+        <return type-id='2712709a'/>
+      </function-decl>
       <function-decl name='iio_channel_release' mangled-name='iio_channel_release' filepath='drivers/iio/inkern.c' line='356' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iio_channel_release'>
         <parameter type-id='2712709a' name='channel' filepath='drivers/iio/inkern.c' line='356' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
+      <function-decl name='iio_channel_release_all' mangled-name='iio_channel_release_all' filepath='drivers/iio/inkern.c' line='482' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iio_channel_release_all'>
+        <parameter type-id='2712709a' name='channels' filepath='drivers/iio/inkern.c' line='482' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
       <function-decl name='iio_dealloc_pollfunc' mangled-name='iio_dealloc_pollfunc' filepath='drivers/iio/industrialio-trigger.c' line='390' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iio_dealloc_pollfunc'>
         <parameter type-id='9add1da7' name='pf' filepath='drivers/iio/industrialio-trigger.c' line='390' column='1'/>
         <return type-id='48b5725f'/>
@@ -143646,6 +144074,9 @@
         <parameter type-id='78041e8f' name='indio_dev' filepath='drivers/iio/industrialio-core.c' line='297' column='1'/>
         <return type-id='9b7c55ef'/>
       </function-decl>
+      <function-decl name='iio_kfifo_allocate' mangled-name='iio_kfifo_allocate' filepath='drivers/iio/buffer/kfifo_buf.c' line='153' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iio_kfifo_allocate'>
+        <return type-id='aa9ea333'/>
+      </function-decl>
       <function-decl name='iio_pollfunc_store_time' mangled-name='iio_pollfunc_store_time' filepath='drivers/iio/industrialio-trigger.c' line='351' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iio_pollfunc_store_time'>
         <parameter type-id='95e97e5e' name='irq' filepath='drivers/iio/industrialio-trigger.c' line='351' column='1'/>
         <parameter type-id='eaa32e2f' name='p' filepath='drivers/iio/industrialio-trigger.c' line='351' column='1'/>
@@ -143685,6 +144116,12 @@
         <parameter type-id='7292109c' name='val2' filepath='drivers/iio/inkern.c' line='747' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
+      <function-decl name='iio_read_const_attr' mangled-name='iio_read_const_attr' filepath='drivers/iio/industrialio-core.c' line='247' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iio_read_const_attr'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/iio/industrialio-core.c' line='247' column='1'/>
+        <parameter type-id='89a2612a' name='attr' filepath='drivers/iio/industrialio-core.c' line='248' column='1'/>
+        <parameter type-id='26a90f95' name='buf' filepath='drivers/iio/industrialio-core.c' line='249' column='1'/>
+        <return type-id='79a0948f'/>
+      </function-decl>
       <function-decl name='iio_read_mount_matrix' mangled-name='iio_read_mount_matrix' filepath='drivers/iio/industrialio-core.c' line='627' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iio_read_mount_matrix'>
         <parameter type-id='fa0b179b' name='dev' filepath='drivers/iio/industrialio-core.c' line='627' column='1'/>
         <parameter type-id='e02525e8' name='matrix' filepath='drivers/iio/industrialio-core.c' line='627' column='1'/>
@@ -143707,6 +144144,11 @@
         <parameter type-id='54e54fbb' name='trig' filepath='drivers/iio/industrialio-trigger.c' line='626' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
+      <function-decl name='iio_trigger_generic_data_rdy_poll' mangled-name='iio_trigger_generic_data_rdy_poll' filepath='drivers/iio/industrialio-trigger.c' line='215' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iio_trigger_generic_data_rdy_poll'>
+        <parameter type-id='95e97e5e' name='irq' filepath='drivers/iio/industrialio-trigger.c' line='215' column='1'/>
+        <parameter type-id='eaa32e2f' name='private' filepath='drivers/iio/industrialio-trigger.c' line='215' column='1'/>
+        <return type-id='4bdecfd7'/>
+      </function-decl>
       <function-decl name='iio_trigger_notify_done' mangled-name='iio_trigger_notify_done' filepath='drivers/iio/industrialio-trigger.c' line='239' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iio_trigger_notify_done'>
         <parameter type-id='54e54fbb' name='trig' filepath='drivers/iio/industrialio-trigger.c' line='239' column='1'/>
         <return type-id='48b5725f'/>
@@ -143719,6 +144161,29 @@
         <parameter type-id='54e54fbb' name='trig_info' filepath='drivers/iio/industrialio-trigger.c' line='106' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
+      <function-decl name='iio_triggered_buffer_cleanup' mangled-name='iio_triggered_buffer_cleanup' filepath='drivers/iio/buffer/industrialio-triggered-buffer.c' line='92' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iio_triggered_buffer_cleanup'>
+        <parameter type-id='226853d2' name='indio_dev' filepath='drivers/iio/buffer/industrialio-triggered-buffer.c' line='92' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='iio_triggered_buffer_setup_ext' mangled-name='iio_triggered_buffer_setup_ext' filepath='drivers/iio/buffer/industrialio-triggered-buffer.c' line='38' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iio_triggered_buffer_setup_ext'>
+        <parameter type-id='226853d2' name='indio_dev' filepath='drivers/iio/buffer/industrialio-triggered-buffer.c' line='38' column='1'/>
+        <parameter type-id='3fefe9b7' name='h' filepath='drivers/iio/buffer/industrialio-triggered-buffer.c' line='39' column='1'/>
+        <parameter type-id='3fefe9b7' name='thread' filepath='drivers/iio/buffer/industrialio-triggered-buffer.c' line='40' column='1'/>
+        <parameter type-id='7597aac3' name='setup_ops' filepath='drivers/iio/buffer/industrialio-triggered-buffer.c' line='41' column='1'/>
+        <parameter type-id='cd733e18' name='buffer_attrs' filepath='drivers/iio/buffer/industrialio-triggered-buffer.c' line='42' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='iio_update_buffers' mangled-name='iio_update_buffers' filepath='drivers/iio/industrialio-buffer.c' line='1149' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iio_update_buffers'>
+        <parameter type-id='226853d2' name='indio_dev' filepath='drivers/iio/industrialio-buffer.c' line='1149' column='1'/>
+        <parameter type-id='aa9ea333' name='insert_buffer' filepath='drivers/iio/industrialio-buffer.c' line='1150' column='1'/>
+        <parameter type-id='aa9ea333' name='remove_buffer' filepath='drivers/iio/industrialio-buffer.c' line='1151' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='iio_validate_scan_mask_onehot' mangled-name='iio_validate_scan_mask_onehot' filepath='drivers/iio/industrialio-buffer.c' line='1689' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iio_validate_scan_mask_onehot'>
+        <parameter type-id='226853d2' name='indio_dev' filepath='drivers/iio/industrialio-buffer.c' line='1689' column='1'/>
+        <parameter type-id='f9b37274' name='mask' filepath='drivers/iio/industrialio-buffer.c' line='1690' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
       <function-decl name='iio_write_channel_attribute' mangled-name='iio_write_channel_attribute' filepath='drivers/iio/inkern.c' line='896' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iio_write_channel_attribute'>
         <parameter type-id='2712709a' name='chan' filepath='drivers/iio/inkern.c' line='896' column='1'/>
         <parameter type-id='95e97e5e' name='val' filepath='drivers/iio/inkern.c' line='896' column='1'/>
@@ -143961,6 +144426,10 @@
         <parameter type-id='bef1b918' name='handle' filepath='drivers/input/input.c' line='686' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
+      <function-decl name='input_device_enabled' mangled-name='input_device_enabled' filepath='drivers/input/input.c' line='2247' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='input_device_enabled'>
+        <parameter type-id='74b427eb' name='dev' filepath='drivers/input/input.c' line='2247' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
       <function-decl name='input_event' mangled-name='input_event' filepath='drivers/input/input.c' line='449' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='input_event'>
         <parameter type-id='74b427eb' name='dev' filepath='drivers/input/input.c' line='449' column='1'/>
         <parameter type-id='f0981eeb' name='type' filepath='drivers/input/input.c' line='450' column='1'/>
@@ -144070,11 +144539,21 @@
         <parameter type-id='f0981eeb' name='code' filepath='drivers/input/input.c' line='2086' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
+      <function-decl name='input_set_poll_interval' mangled-name='input_set_poll_interval' filepath='drivers/input/input-poller.c' line='105' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='input_set_poll_interval'>
+        <parameter type-id='74b427eb' name='dev' filepath='drivers/input/input-poller.c' line='105' column='1'/>
+        <parameter type-id='f0981eeb' name='interval' filepath='drivers/input/input-poller.c' line='105' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
       <function-decl name='input_set_timestamp' mangled-name='input_set_timestamp' filepath='drivers/input/input.c' line='2051' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='input_set_timestamp'>
         <parameter type-id='74b427eb' name='dev' filepath='drivers/input/input.c' line='2051' column='1'/>
         <parameter type-id='fbc017ef' name='timestamp' filepath='drivers/input/input.c' line='2051' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
+      <function-decl name='input_setup_polling' mangled-name='input_setup_polling' filepath='drivers/input/input-poller.c' line='68' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='input_setup_polling'>
+        <parameter type-id='74b427eb' name='dev' filepath='drivers/input/input-poller.c' line='68' column='1'/>
+        <parameter type-id='b44880ea' name='poll_fn' filepath='drivers/input/input-poller.c' line='69' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
       <function-decl name='input_unregister_device' mangled-name='input_unregister_device' filepath='drivers/input/input.c' line='2385' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='input_unregister_device'>
         <parameter type-id='74b427eb' name='dev' filepath='drivers/input/input.c' line='2385' column='1'/>
         <return type-id='48b5725f'/>
@@ -144139,63 +144618,69 @@
         <parameter type-id='7359adad' name='end' filepath='mm/truncate.c' line='531' column='1'/>
         <return type-id='7359adad'/>
       </function-decl>
-      <function-decl name='io_schedule' mangled-name='io_schedule' filepath='kernel/sched/core.c' line='8676' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='io_schedule'>
+      <var-decl name='io_cgrp_subsys_on_dfl_key' type-id='49a0ad34' mangled-name='io_cgrp_subsys_on_dfl_key' visibility='default' filepath='include/linux/cgroup_subsys.h' line='25' column='1' elf-symbol-id='io_cgrp_subsys_on_dfl_key'/>
+      <function-decl name='io_schedule' mangled-name='io_schedule' filepath='kernel/sched/core.c' line='8608' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='io_schedule'>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='io_schedule_timeout' mangled-name='io_schedule_timeout' filepath='kernel/sched/core.c' line='8663' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='io_schedule_timeout'>
-        <parameter type-id='bd54fe1a' name='timeout' filepath='kernel/sched/core.c' line='8663' column='1'/>
+      <function-decl name='io_schedule_timeout' mangled-name='io_schedule_timeout' filepath='kernel/sched/core.c' line='8595' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='io_schedule_timeout'>
+        <parameter type-id='bd54fe1a' name='timeout' filepath='kernel/sched/core.c' line='8595' column='1'/>
         <return type-id='bd54fe1a'/>
       </function-decl>
+      <function-decl name='ioc_lookup_icq' mangled-name='ioc_lookup_icq' filepath='block/blk-ioc.c' line='333' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ioc_lookup_icq'>
+        <parameter type-id='d042cfad' name='ioc' filepath='block/blk-ioc.c' line='333' column='1'/>
+        <parameter type-id='e7d2a5fc' name='q' filepath='block/blk-ioc.c' line='333' column='1'/>
+        <return type-id='7c6e0e0c'/>
+      </function-decl>
       <function-decl name='iomap_dio_complete' mangled-name='iomap_dio_complete' filepath='fs/iomap/direct-io.c' line='80' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iomap_dio_complete'>
         <parameter type-id='22159b04' name='dio' filepath='fs/iomap/direct-io.c' line='80' column='1'/>
         <return type-id='79a0948f'/>
       </function-decl>
       <var-decl name='iomem_resource' type-id='5218160d' mangled-name='iomem_resource' visibility='default' filepath='kernel/resource.c' line='41' column='1' elf-symbol-id='iomem_resource'/>
-      <function-decl name='iommu_alloc_resv_region' mangled-name='iommu_alloc_resv_region' filepath='drivers/iommu/iommu.c' line='2841' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_alloc_resv_region'>
-        <parameter type-id='2522883d' name='start' filepath='drivers/iommu/iommu.c' line='2841' column='1'/>
-        <parameter type-id='b59d7dce' name='length' filepath='drivers/iommu/iommu.c' line='2842' column='1'/>
-        <parameter type-id='95e97e5e' name='prot' filepath='drivers/iommu/iommu.c' line='2842' column='1'/>
-        <parameter type-id='256c2037' name='type' filepath='drivers/iommu/iommu.c' line='2843' column='1'/>
+      <function-decl name='iommu_alloc_resv_region' mangled-name='iommu_alloc_resv_region' filepath='drivers/iommu/iommu.c' line='2857' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_alloc_resv_region'>
+        <parameter type-id='2522883d' name='start' filepath='drivers/iommu/iommu.c' line='2857' column='1'/>
+        <parameter type-id='b59d7dce' name='length' filepath='drivers/iommu/iommu.c' line='2858' column='1'/>
+        <parameter type-id='95e97e5e' name='prot' filepath='drivers/iommu/iommu.c' line='2858' column='1'/>
+        <parameter type-id='256c2037' name='type' filepath='drivers/iommu/iommu.c' line='2859' column='1'/>
         <return type-id='24b0cc5e'/>
       </function-decl>
-      <function-decl name='iommu_attach_device' mangled-name='iommu_attach_device' filepath='drivers/iommu/iommu.c' line='1997' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_attach_device'>
-        <parameter type-id='bff05edb' name='domain' filepath='drivers/iommu/iommu.c' line='1997' column='1'/>
-        <parameter type-id='fa0b179b' name='dev' filepath='drivers/iommu/iommu.c' line='1997' column='1'/>
+      <function-decl name='iommu_attach_device' mangled-name='iommu_attach_device' filepath='drivers/iommu/iommu.c' line='2013' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_attach_device'>
+        <parameter type-id='bff05edb' name='domain' filepath='drivers/iommu/iommu.c' line='2013' column='1'/>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/iommu/iommu.c' line='2013' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='iommu_attach_group' mangled-name='iommu_attach_group' filepath='drivers/iommu/iommu.c' line='2339' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_attach_group'>
-        <parameter type-id='bff05edb' name='domain' filepath='drivers/iommu/iommu.c' line='2339' column='1'/>
-        <parameter type-id='0b19fc54' name='group' filepath='drivers/iommu/iommu.c' line='2339' column='1'/>
+      <function-decl name='iommu_attach_group' mangled-name='iommu_attach_group' filepath='drivers/iommu/iommu.c' line='2355' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_attach_group'>
+        <parameter type-id='bff05edb' name='domain' filepath='drivers/iommu/iommu.c' line='2355' column='1'/>
+        <parameter type-id='0b19fc54' name='group' filepath='drivers/iommu/iommu.c' line='2355' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='iommu_aux_attach_device' mangled-name='iommu_aux_attach_device' filepath='drivers/iommu/iommu.c' line='3014' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_aux_attach_device'>
-        <parameter type-id='bff05edb' name='domain' filepath='drivers/iommu/iommu.c' line='3014' column='1'/>
-        <parameter type-id='fa0b179b' name='dev' filepath='drivers/iommu/iommu.c' line='3014' column='1'/>
+      <function-decl name='iommu_aux_attach_device' mangled-name='iommu_aux_attach_device' filepath='drivers/iommu/iommu.c' line='3030' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_aux_attach_device'>
+        <parameter type-id='bff05edb' name='domain' filepath='drivers/iommu/iommu.c' line='3030' column='1'/>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/iommu/iommu.c' line='3030' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='iommu_aux_detach_device' mangled-name='iommu_aux_detach_device' filepath='drivers/iommu/iommu.c' line='3028' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_aux_detach_device'>
-        <parameter type-id='bff05edb' name='domain' filepath='drivers/iommu/iommu.c' line='3028' column='1'/>
-        <parameter type-id='fa0b179b' name='dev' filepath='drivers/iommu/iommu.c' line='3028' column='1'/>
+      <function-decl name='iommu_aux_detach_device' mangled-name='iommu_aux_detach_device' filepath='drivers/iommu/iommu.c' line='3044' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_aux_detach_device'>
+        <parameter type-id='bff05edb' name='domain' filepath='drivers/iommu/iommu.c' line='3044' column='1'/>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/iommu/iommu.c' line='3044' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='iommu_aux_get_pasid' mangled-name='iommu_aux_get_pasid' filepath='drivers/iommu/iommu.c' line='3037' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_aux_get_pasid'>
-        <parameter type-id='bff05edb' name='domain' filepath='drivers/iommu/iommu.c' line='3037' column='1'/>
-        <parameter type-id='fa0b179b' name='dev' filepath='drivers/iommu/iommu.c' line='3037' column='1'/>
+      <function-decl name='iommu_aux_get_pasid' mangled-name='iommu_aux_get_pasid' filepath='drivers/iommu/iommu.c' line='3053' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_aux_get_pasid'>
+        <parameter type-id='bff05edb' name='domain' filepath='drivers/iommu/iommu.c' line='3053' column='1'/>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/iommu/iommu.c' line='3053' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='iommu_detach_device' mangled-name='iommu_detach_device' filepath='drivers/iommu/iommu.c' line='2258' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_detach_device'>
-        <parameter type-id='bff05edb' name='domain' filepath='drivers/iommu/iommu.c' line='2258' column='1'/>
-        <parameter type-id='fa0b179b' name='dev' filepath='drivers/iommu/iommu.c' line='2258' column='1'/>
+      <function-decl name='iommu_detach_device' mangled-name='iommu_detach_device' filepath='drivers/iommu/iommu.c' line='2274' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_detach_device'>
+        <parameter type-id='bff05edb' name='domain' filepath='drivers/iommu/iommu.c' line='2274' column='1'/>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/iommu/iommu.c' line='2274' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='iommu_dev_enable_feature' mangled-name='iommu_dev_enable_feature' filepath='drivers/iommu/iommu.c' line='2960' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_dev_enable_feature'>
-        <parameter type-id='fa0b179b' name='dev' filepath='drivers/iommu/iommu.c' line='2960' column='1'/>
-        <parameter type-id='29d28711' name='feat' filepath='drivers/iommu/iommu.c' line='2960' column='1'/>
+      <function-decl name='iommu_dev_enable_feature' mangled-name='iommu_dev_enable_feature' filepath='drivers/iommu/iommu.c' line='2976' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_dev_enable_feature'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/iommu/iommu.c' line='2976' column='1'/>
+        <parameter type-id='29d28711' name='feat' filepath='drivers/iommu/iommu.c' line='2976' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='iommu_dev_feature_enabled' mangled-name='iommu_dev_feature_enabled' filepath='drivers/iommu/iommu.c' line='2991' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_dev_feature_enabled'>
-        <parameter type-id='fa0b179b' name='dev' filepath='drivers/iommu/iommu.c' line='2991' column='1'/>
-        <parameter type-id='29d28711' name='feat' filepath='drivers/iommu/iommu.c' line='2991' column='1'/>
+      <function-decl name='iommu_dev_feature_enabled' mangled-name='iommu_dev_feature_enabled' filepath='drivers/iommu/iommu.c' line='3007' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_dev_feature_enabled'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/iommu/iommu.c' line='3007' column='1'/>
+        <parameter type-id='29d28711' name='feat' filepath='drivers/iommu/iommu.c' line='3007' column='1'/>
         <return type-id='b50a4934'/>
       </function-decl>
       <function-decl name='iommu_device_link' mangled-name='iommu_device_link' filepath='drivers/iommu/iommu-sysfs.c' line='106' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_device_link'>
@@ -144239,30 +144724,30 @@
         <parameter type-id='e84b031a' name='list' filepath='drivers/iommu/dma-iommu.c' line='194' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='iommu_domain_alloc' mangled-name='iommu_domain_alloc' filepath='drivers/iommu/iommu.c' line='1970' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_domain_alloc'>
-        <parameter type-id='5e2671f8' name='bus' filepath='drivers/iommu/iommu.c' line='1970' column='1'/>
+      <function-decl name='iommu_domain_alloc' mangled-name='iommu_domain_alloc' filepath='drivers/iommu/iommu.c' line='1986' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_domain_alloc'>
+        <parameter type-id='5e2671f8' name='bus' filepath='drivers/iommu/iommu.c' line='1986' column='1'/>
         <return type-id='bff05edb'/>
       </function-decl>
-      <function-decl name='iommu_domain_free' mangled-name='iommu_domain_free' filepath='drivers/iommu/iommu.c' line='1976' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_domain_free'>
-        <parameter type-id='bff05edb' name='domain' filepath='drivers/iommu/iommu.c' line='1976' column='1'/>
+      <function-decl name='iommu_domain_free' mangled-name='iommu_domain_free' filepath='drivers/iommu/iommu.c' line='1992' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_domain_free'>
+        <parameter type-id='bff05edb' name='domain' filepath='drivers/iommu/iommu.c' line='1992' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='iommu_fwspec_add_ids' mangled-name='iommu_fwspec_add_ids' filepath='drivers/iommu/iommu.c' line='2931' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_fwspec_add_ids'>
-        <parameter type-id='fa0b179b' name='dev' filepath='drivers/iommu/iommu.c' line='2931' column='1'/>
-        <parameter type-id='f9409001' name='ids' filepath='drivers/iommu/iommu.c' line='2931' column='1'/>
-        <parameter type-id='95e97e5e' name='num_ids' filepath='drivers/iommu/iommu.c' line='2931' column='1'/>
+      <function-decl name='iommu_fwspec_add_ids' mangled-name='iommu_fwspec_add_ids' filepath='drivers/iommu/iommu.c' line='2947' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_fwspec_add_ids'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/iommu/iommu.c' line='2947' column='1'/>
+        <parameter type-id='f9409001' name='ids' filepath='drivers/iommu/iommu.c' line='2947' column='1'/>
+        <parameter type-id='95e97e5e' name='num_ids' filepath='drivers/iommu/iommu.c' line='2947' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='iommu_fwspec_free' mangled-name='iommu_fwspec_free' filepath='drivers/iommu/iommu.c' line='2919' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_fwspec_free'>
-        <parameter type-id='fa0b179b' name='dev' filepath='drivers/iommu/iommu.c' line='2919' column='1'/>
+      <function-decl name='iommu_fwspec_free' mangled-name='iommu_fwspec_free' filepath='drivers/iommu/iommu.c' line='2935' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_fwspec_free'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/iommu/iommu.c' line='2935' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
       <function-decl name='iommu_get_dma_cookie' mangled-name='iommu_get_dma_cookie' filepath='drivers/iommu/dma-iommu.c' line='112' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_get_dma_cookie'>
         <parameter type-id='bff05edb' name='domain' filepath='drivers/iommu/dma-iommu.c' line='112' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='iommu_get_domain_for_dev' mangled-name='iommu_get_domain_for_dev' filepath='drivers/iommu/iommu.c' line='2280' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_get_domain_for_dev'>
-        <parameter type-id='fa0b179b' name='dev' filepath='drivers/iommu/iommu.c' line='2280' column='1'/>
+      <function-decl name='iommu_get_domain_for_dev' mangled-name='iommu_get_domain_for_dev' filepath='drivers/iommu/iommu.c' line='2296' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_get_domain_for_dev'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/iommu/iommu.c' line='2296' column='1'/>
         <return type-id='bff05edb'/>
       </function-decl>
       <function-decl name='iommu_get_msi_cookie' mangled-name='iommu_get_msi_cookie' filepath='drivers/iommu/dma-iommu.c' line='137' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_get_msi_cookie'>
@@ -144270,110 +144755,110 @@
         <parameter type-id='cf29c9b3' name='base' filepath='drivers/iommu/dma-iommu.c' line='137' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='iommu_group_alloc' mangled-name='iommu_group_alloc' filepath='drivers/iommu/iommu.c' line='614' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_group_alloc'>
+      <function-decl name='iommu_group_alloc' mangled-name='iommu_group_alloc' filepath='drivers/iommu/iommu.c' line='630' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_group_alloc'>
         <return type-id='0b19fc54'/>
       </function-decl>
-      <function-decl name='iommu_group_for_each_dev' mangled-name='iommu_group_for_each_dev' filepath='drivers/iommu/iommu.c' line='1013' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_group_for_each_dev'>
-        <parameter type-id='0b19fc54' name='group' filepath='drivers/iommu/iommu.c' line='1013' column='1'/>
-        <parameter type-id='eaa32e2f' name='data' filepath='drivers/iommu/iommu.c' line='1013' column='1'/>
-        <parameter type-id='92d15ae9' name='fn' filepath='drivers/iommu/iommu.c' line='1014' column='1'/>
+      <function-decl name='iommu_group_for_each_dev' mangled-name='iommu_group_for_each_dev' filepath='drivers/iommu/iommu.c' line='1029' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_group_for_each_dev'>
+        <parameter type-id='0b19fc54' name='group' filepath='drivers/iommu/iommu.c' line='1029' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='drivers/iommu/iommu.c' line='1029' column='1'/>
+        <parameter type-id='92d15ae9' name='fn' filepath='drivers/iommu/iommu.c' line='1030' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='iommu_group_get' mangled-name='iommu_group_get' filepath='drivers/iommu/iommu.c' line='1034' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_group_get'>
-        <parameter type-id='fa0b179b' name='dev' filepath='drivers/iommu/iommu.c' line='1034' column='1'/>
+      <function-decl name='iommu_group_get' mangled-name='iommu_group_get' filepath='drivers/iommu/iommu.c' line='1050' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_group_get'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/iommu/iommu.c' line='1050' column='1'/>
         <return type-id='0b19fc54'/>
       </function-decl>
-      <function-decl name='iommu_group_get_iommudata' mangled-name='iommu_group_get_iommudata' filepath='drivers/iommu/iommu.c' line='709' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_group_get_iommudata'>
-        <parameter type-id='0b19fc54' name='group' filepath='drivers/iommu/iommu.c' line='709' column='1'/>
+      <function-decl name='iommu_group_get_iommudata' mangled-name='iommu_group_get_iommudata' filepath='drivers/iommu/iommu.c' line='725' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_group_get_iommudata'>
+        <parameter type-id='0b19fc54' name='group' filepath='drivers/iommu/iommu.c' line='725' column='1'/>
         <return type-id='eaa32e2f'/>
       </function-decl>
-      <function-decl name='iommu_group_put' mangled-name='iommu_group_put' filepath='drivers/iommu/iommu.c' line='1066' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_group_put'>
-        <parameter type-id='0b19fc54' name='group' filepath='drivers/iommu/iommu.c' line='1066' column='1'/>
+      <function-decl name='iommu_group_put' mangled-name='iommu_group_put' filepath='drivers/iommu/iommu.c' line='1082' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_group_put'>
+        <parameter type-id='0b19fc54' name='group' filepath='drivers/iommu/iommu.c' line='1082' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='iommu_group_ref_get' mangled-name='iommu_group_ref_get' filepath='drivers/iommu/iommu.c' line='1052' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_group_ref_get'>
-        <parameter type-id='0b19fc54' name='group' filepath='drivers/iommu/iommu.c' line='1052' column='1'/>
+      <function-decl name='iommu_group_ref_get' mangled-name='iommu_group_ref_get' filepath='drivers/iommu/iommu.c' line='1068' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_group_ref_get'>
+        <parameter type-id='0b19fc54' name='group' filepath='drivers/iommu/iommu.c' line='1068' column='1'/>
         <return type-id='0b19fc54'/>
       </function-decl>
-      <function-decl name='iommu_group_register_notifier' mangled-name='iommu_group_register_notifier' filepath='drivers/iommu/iommu.c' line='1082' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_group_register_notifier'>
-        <parameter type-id='0b19fc54' name='group' filepath='drivers/iommu/iommu.c' line='1082' column='1'/>
-        <parameter type-id='d504f73d' name='nb' filepath='drivers/iommu/iommu.c' line='1083' column='1'/>
+      <function-decl name='iommu_group_register_notifier' mangled-name='iommu_group_register_notifier' filepath='drivers/iommu/iommu.c' line='1098' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_group_register_notifier'>
+        <parameter type-id='0b19fc54' name='group' filepath='drivers/iommu/iommu.c' line='1098' column='1'/>
+        <parameter type-id='d504f73d' name='nb' filepath='drivers/iommu/iommu.c' line='1099' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='iommu_group_remove_device' mangled-name='iommu_group_remove_device' filepath='drivers/iommu/iommu.c' line='937' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_group_remove_device'>
-        <parameter type-id='fa0b179b' name='dev' filepath='drivers/iommu/iommu.c' line='937' column='1'/>
+      <function-decl name='iommu_group_remove_device' mangled-name='iommu_group_remove_device' filepath='drivers/iommu/iommu.c' line='953' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_group_remove_device'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/iommu/iommu.c' line='953' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='iommu_group_set_iommudata' mangled-name='iommu_group_set_iommudata' filepath='drivers/iommu/iommu.c' line='725' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_group_set_iommudata'>
-        <parameter type-id='0b19fc54' name='group' filepath='drivers/iommu/iommu.c' line='725' column='1'/>
-        <parameter type-id='eaa32e2f' name='iommu_data' filepath='drivers/iommu/iommu.c' line='725' column='1'/>
-        <parameter type-id='b7f9d8e6' name='release' filepath='drivers/iommu/iommu.c' line='726' column='1'/>
-        <return type-id='48b5725f'/>
-      </function-decl>
-      <function-decl name='iommu_group_set_name' mangled-name='iommu_group_set_name' filepath='drivers/iommu/iommu.c' line='741' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_group_set_name'>
+      <function-decl name='iommu_group_set_iommudata' mangled-name='iommu_group_set_iommudata' filepath='drivers/iommu/iommu.c' line='741' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_group_set_iommudata'>
         <parameter type-id='0b19fc54' name='group' filepath='drivers/iommu/iommu.c' line='741' column='1'/>
-        <parameter type-id='80f4b756' name='name' filepath='drivers/iommu/iommu.c' line='741' column='1'/>
+        <parameter type-id='eaa32e2f' name='iommu_data' filepath='drivers/iommu/iommu.c' line='741' column='1'/>
+        <parameter type-id='b7f9d8e6' name='release' filepath='drivers/iommu/iommu.c' line='742' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='iommu_group_set_name' mangled-name='iommu_group_set_name' filepath='drivers/iommu/iommu.c' line='757' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_group_set_name'>
+        <parameter type-id='0b19fc54' name='group' filepath='drivers/iommu/iommu.c' line='757' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='drivers/iommu/iommu.c' line='757' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='iommu_iova_to_phys' mangled-name='iommu_iova_to_phys' filepath='drivers/iommu/iommu.c' line='2392' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_iova_to_phys'>
-        <parameter type-id='bff05edb' name='domain' filepath='drivers/iommu/iommu.c' line='2392' column='1'/>
-        <parameter type-id='cf29c9b3' name='iova' filepath='drivers/iommu/iommu.c' line='2392' column='1'/>
+      <function-decl name='iommu_iova_to_phys' mangled-name='iommu_iova_to_phys' filepath='drivers/iommu/iommu.c' line='2408' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_iova_to_phys'>
+        <parameter type-id='bff05edb' name='domain' filepath='drivers/iommu/iommu.c' line='2408' column='1'/>
+        <parameter type-id='cf29c9b3' name='iova' filepath='drivers/iommu/iommu.c' line='2408' column='1'/>
         <return type-id='2522883d'/>
       </function-decl>
-      <function-decl name='iommu_map' mangled-name='iommu_map' filepath='drivers/iommu/iommu.c' line='2555' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_map'>
-        <parameter type-id='bff05edb' name='domain' filepath='drivers/iommu/iommu.c' line='2555' column='1'/>
-        <parameter type-id='7359adad' name='iova' filepath='drivers/iommu/iommu.c' line='2555' column='1'/>
-        <parameter type-id='2522883d' name='paddr' filepath='drivers/iommu/iommu.c' line='2556' column='1'/>
-        <parameter type-id='b59d7dce' name='size' filepath='drivers/iommu/iommu.c' line='2556' column='1'/>
-        <parameter type-id='95e97e5e' name='prot' filepath='drivers/iommu/iommu.c' line='2556' column='1'/>
+      <function-decl name='iommu_map' mangled-name='iommu_map' filepath='drivers/iommu/iommu.c' line='2571' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_map'>
+        <parameter type-id='bff05edb' name='domain' filepath='drivers/iommu/iommu.c' line='2571' column='1'/>
+        <parameter type-id='7359adad' name='iova' filepath='drivers/iommu/iommu.c' line='2571' column='1'/>
+        <parameter type-id='2522883d' name='paddr' filepath='drivers/iommu/iommu.c' line='2572' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='drivers/iommu/iommu.c' line='2572' column='1'/>
+        <parameter type-id='95e97e5e' name='prot' filepath='drivers/iommu/iommu.c' line='2572' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='iommu_map_sg' mangled-name='iommu_map_sg' filepath='drivers/iommu/iommu.c' line='2717' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_map_sg'>
-        <parameter type-id='bff05edb' name='domain' filepath='drivers/iommu/iommu.c' line='2717' column='1'/>
-        <parameter type-id='7359adad' name='iova' filepath='drivers/iommu/iommu.c' line='2717' column='1'/>
-        <parameter type-id='bf3ef905' name='sg' filepath='drivers/iommu/iommu.c' line='2718' column='1'/>
-        <parameter type-id='f0981eeb' name='nents' filepath='drivers/iommu/iommu.c' line='2718' column='1'/>
-        <parameter type-id='95e97e5e' name='prot' filepath='drivers/iommu/iommu.c' line='2718' column='1'/>
+      <function-decl name='iommu_map_sg' mangled-name='iommu_map_sg' filepath='drivers/iommu/iommu.c' line='2733' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_map_sg'>
+        <parameter type-id='bff05edb' name='domain' filepath='drivers/iommu/iommu.c' line='2733' column='1'/>
+        <parameter type-id='7359adad' name='iova' filepath='drivers/iommu/iommu.c' line='2733' column='1'/>
+        <parameter type-id='bf3ef905' name='sg' filepath='drivers/iommu/iommu.c' line='2734' column='1'/>
+        <parameter type-id='f0981eeb' name='nents' filepath='drivers/iommu/iommu.c' line='2734' column='1'/>
+        <parameter type-id='95e97e5e' name='prot' filepath='drivers/iommu/iommu.c' line='2734' column='1'/>
         <return type-id='79a0948f'/>
       </function-decl>
-      <function-decl name='iommu_present' mangled-name='iommu_present' filepath='drivers/iommu/iommu.c' line='1907' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_present'>
-        <parameter type-id='5e2671f8' name='bus' filepath='drivers/iommu/iommu.c' line='1907' column='1'/>
+      <function-decl name='iommu_present' mangled-name='iommu_present' filepath='drivers/iommu/iommu.c' line='1923' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_present'>
+        <parameter type-id='5e2671f8' name='bus' filepath='drivers/iommu/iommu.c' line='1923' column='1'/>
         <return type-id='b50a4934'/>
       </function-decl>
       <function-decl name='iommu_put_dma_cookie' mangled-name='iommu_put_dma_cookie' filepath='drivers/iommu/dma-iommu.c' line='164' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_put_dma_cookie'>
         <parameter type-id='bff05edb' name='domain' filepath='drivers/iommu/dma-iommu.c' line='164' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='iommu_register_device_fault_handler' mangled-name='iommu_register_device_fault_handler' filepath='drivers/iommu/iommu.c' line='1121' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_register_device_fault_handler'>
-        <parameter type-id='fa0b179b' name='dev' filepath='drivers/iommu/iommu.c' line='1121' column='1'/>
-        <parameter type-id='a84f5b46' name='handler' filepath='drivers/iommu/iommu.c' line='1122' column='1'/>
-        <parameter type-id='eaa32e2f' name='data' filepath='drivers/iommu/iommu.c' line='1123' column='1'/>
+      <function-decl name='iommu_register_device_fault_handler' mangled-name='iommu_register_device_fault_handler' filepath='drivers/iommu/iommu.c' line='1137' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_register_device_fault_handler'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/iommu/iommu.c' line='1137' column='1'/>
+        <parameter type-id='a84f5b46' name='handler' filepath='drivers/iommu/iommu.c' line='1138' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='drivers/iommu/iommu.c' line='1139' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='iommu_report_device_fault' mangled-name='iommu_report_device_fault' filepath='drivers/iommu/iommu.c' line='1206' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_report_device_fault'>
-        <parameter type-id='fa0b179b' name='dev' filepath='drivers/iommu/iommu.c' line='1206' column='1'/>
-        <parameter type-id='af233abc' name='evt' filepath='drivers/iommu/iommu.c' line='1206' column='1'/>
+      <function-decl name='iommu_report_device_fault' mangled-name='iommu_report_device_fault' filepath='drivers/iommu/iommu.c' line='1222' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_report_device_fault'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/iommu/iommu.c' line='1222' column='1'/>
+        <parameter type-id='af233abc' name='evt' filepath='drivers/iommu/iommu.c' line='1222' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='iommu_set_fault_handler' mangled-name='iommu_set_fault_handler' filepath='drivers/iommu/iommu.c' line='1934' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_set_fault_handler'>
-        <parameter type-id='bff05edb' name='domain' filepath='drivers/iommu/iommu.c' line='1934' column='1'/>
-        <parameter type-id='a01c3626' name='handler' filepath='drivers/iommu/iommu.c' line='1935' column='1'/>
-        <parameter type-id='eaa32e2f' name='token' filepath='drivers/iommu/iommu.c' line='1936' column='1'/>
+      <function-decl name='iommu_set_fault_handler' mangled-name='iommu_set_fault_handler' filepath='drivers/iommu/iommu.c' line='1950' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_set_fault_handler'>
+        <parameter type-id='bff05edb' name='domain' filepath='drivers/iommu/iommu.c' line='1950' column='1'/>
+        <parameter type-id='a01c3626' name='handler' filepath='drivers/iommu/iommu.c' line='1951' column='1'/>
+        <parameter type-id='eaa32e2f' name='token' filepath='drivers/iommu/iommu.c' line='1952' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='iommu_set_pgtable_quirks' mangled-name='iommu_set_pgtable_quirks' filepath='drivers/iommu/iommu.c' line='2795' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_set_pgtable_quirks'>
-        <parameter type-id='bff05edb' name='domain' filepath='drivers/iommu/iommu.c' line='2795' column='1'/>
-        <parameter type-id='7359adad' name='quirk' filepath='drivers/iommu/iommu.c' line='2796' column='1'/>
+      <function-decl name='iommu_set_pgtable_quirks' mangled-name='iommu_set_pgtable_quirks' filepath='drivers/iommu/iommu.c' line='2811' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_set_pgtable_quirks'>
+        <parameter type-id='bff05edb' name='domain' filepath='drivers/iommu/iommu.c' line='2811' column='1'/>
+        <parameter type-id='7359adad' name='quirk' filepath='drivers/iommu/iommu.c' line='2812' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='iommu_unmap' mangled-name='iommu_unmap' filepath='drivers/iommu/iommu.c' line='2637' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_unmap'>
-        <parameter type-id='bff05edb' name='domain' filepath='drivers/iommu/iommu.c' line='2637' column='1'/>
-        <parameter type-id='7359adad' name='iova' filepath='drivers/iommu/iommu.c' line='2638' column='1'/>
-        <parameter type-id='b59d7dce' name='size' filepath='drivers/iommu/iommu.c' line='2638' column='1'/>
+      <function-decl name='iommu_unmap' mangled-name='iommu_unmap' filepath='drivers/iommu/iommu.c' line='2653' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_unmap'>
+        <parameter type-id='bff05edb' name='domain' filepath='drivers/iommu/iommu.c' line='2653' column='1'/>
+        <parameter type-id='7359adad' name='iova' filepath='drivers/iommu/iommu.c' line='2654' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='drivers/iommu/iommu.c' line='2654' column='1'/>
         <return type-id='b59d7dce'/>
       </function-decl>
-      <function-decl name='iommu_unregister_device_fault_handler' mangled-name='iommu_unregister_device_fault_handler' filepath='drivers/iommu/iommu.c' line='1166' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_unregister_device_fault_handler'>
-        <parameter type-id='fa0b179b' name='dev' filepath='drivers/iommu/iommu.c' line='1166' column='1'/>
+      <function-decl name='iommu_unregister_device_fault_handler' mangled-name='iommu_unregister_device_fault_handler' filepath='drivers/iommu/iommu.c' line='1182' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_unregister_device_fault_handler'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/iommu/iommu.c' line='1182' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
       <var-decl name='ioport_resource' type-id='5218160d' mangled-name='ioport_resource' visibility='default' filepath='kernel/resource.c' line='33' column='1' elf-symbol-id='ioport_resource'/>
@@ -144441,6 +144926,12 @@
         <parameter type-id='4fa10f9e' name='i' filepath='lib/iov_iter.c' line='952' column='1'/>
         <return type-id='b59d7dce'/>
       </function-decl>
+      <function-decl name='iova_cache_get' mangled-name='iova_cache_get' filepath='drivers/iommu/iova.c' line='401' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iova_cache_get'>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='iova_cache_put' mangled-name='iova_cache_put' filepath='drivers/iommu/iova.c' line='433' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iova_cache_put'>
+        <return type-id='48b5725f'/>
+      </function-decl>
       <function-decl name='ip6_find_1stfragopt' mangled-name='ip6_find_1stfragopt' filepath='net/ipv6/output_core.c' line='64' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ip6_find_1stfragopt'>
         <parameter type-id='0fbf3cfd' name='skb' filepath='net/ipv6/output_core.c' line='64' column='1'/>
         <parameter type-id='1f37a7f4' name='nexthdr' filepath='net/ipv6/output_core.c' line='64' column='1'/>
@@ -144764,6 +145255,13 @@
         <parameter type-id='eaa32e2f' name='arg' filepath='kernel/irq/irqdomain.c' line='1716' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
+      <function-decl name='irq_domain_associate_many' mangled-name='irq_domain_associate_many' filepath='kernel/irq/irqdomain.c' line='612' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='irq_domain_associate_many'>
+        <parameter type-id='7544e824' name='domain' filepath='kernel/irq/irqdomain.c' line='612' column='1'/>
+        <parameter type-id='f0981eeb' name='irq_base' filepath='kernel/irq/irqdomain.c' line='612' column='1'/>
+        <parameter type-id='88370ce9' name='hwirq_base' filepath='kernel/irq/irqdomain.c' line='613' column='1'/>
+        <parameter type-id='95e97e5e' name='count' filepath='kernel/irq/irqdomain.c' line='613' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
       <function-decl name='irq_domain_create_hierarchy' mangled-name='irq_domain_create_hierarchy' filepath='kernel/irq/irqdomain.c' line='1095' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='irq_domain_create_hierarchy'>
         <parameter type-id='7544e824' name='parent' filepath='kernel/irq/irqdomain.c' line='1095' column='1'/>
         <parameter type-id='f0981eeb' name='flags' filepath='kernel/irq/irqdomain.c' line='1096' column='1'/>
@@ -145039,6 +145537,12 @@
         <parameter type-id='eaa32e2f' name='p' filepath='fs/file.c' line='1326' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
+      <function-decl name='iterate_supers_type' mangled-name='iterate_supers_type' filepath='fs/super.c' line='718' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iterate_supers_type'>
+        <parameter type-id='21e53d44' name='type' filepath='fs/super.c' line='718' column='1'/>
+        <parameter type-id='46530b39' name='f' filepath='fs/super.c' line='719' column='1'/>
+        <parameter type-id='eaa32e2f' name='arg' filepath='fs/super.c' line='719' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
       <function-decl name='iunique' mangled-name='iunique' filepath='fs/inode.c' line='1277' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iunique'>
         <parameter type-id='42c8f564' name='sb' filepath='fs/inode.c' line='1277' column='1'/>
         <parameter type-id='2aa75eef' name='max_reserved' filepath='fs/inode.c' line='1277' column='1'/>
@@ -145152,7 +145656,7 @@
         <parameter type-id='95e97e5e' name='flags' filepath='net/socket.c' line='3454' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <var-decl name='kernel_cpustat' type-id='7b5f27b3' mangled-name='kernel_cpustat' visibility='default' filepath='kernel/sched/core.c' line='5316' column='1' elf-symbol-id='kernel_cpustat'/>
+      <var-decl name='kernel_cpustat' type-id='7b5f27b3' mangled-name='kernel_cpustat' visibility='default' filepath='kernel/sched/core.c' line='5284' column='1' elf-symbol-id='kernel_cpustat'/>
       <function-decl name='kernel_getsockname' mangled-name='kernel_getsockname' filepath='net/socket.c' line='3469' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kernel_getsockname'>
         <parameter type-id='13103032' name='sock' filepath='net/socket.c' line='3469' column='1'/>
         <parameter type-id='5c0abad8' name='addr' filepath='net/socket.c' line='3469' column='1'/>
@@ -145310,6 +145814,10 @@
         <parameter type-id='95e97e5e' name='band' filepath='fs/fcntl.c' line='1028' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
+      <function-decl name='kill_litter_super' mangled-name='kill_litter_super' filepath='fs/super.c' line='1063' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kill_litter_super'>
+        <parameter type-id='42c8f564' name='sb' filepath='fs/super.c' line='1063' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
       <function-decl name='kill_pid' mangled-name='kill_pid' filepath='kernel/signal.c' line='1915' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kill_pid'>
         <parameter type-id='b94e5398' name='pid' filepath='kernel/signal.c' line='1915' column='1'/>
         <parameter type-id='95e97e5e' name='sig' filepath='kernel/signal.c' line='1915' column='1'/>
@@ -145515,7 +146023,7 @@
         <return type-id='b59d7dce'/>
       </function-decl>
       <var-decl name='ksoftirqd' type-id='f23e2572' mangled-name='ksoftirqd' visibility='default' filepath='kernel/softirq.c' line='64' column='1' elf-symbol-id='ksoftirqd'/>
-      <var-decl name='kstat' type-id='153750ef' mangled-name='kstat' visibility='default' filepath='kernel/sched/core.c' line='5315' column='1' elf-symbol-id='kstat'/>
+      <var-decl name='kstat' type-id='153750ef' mangled-name='kstat' visibility='default' filepath='kernel/sched/core.c' line='5283' column='1' elf-symbol-id='kstat'/>
       <function-decl name='kstat_irqs_cpu' mangled-name='kstat_irqs_cpu' filepath='kernel/irq/irqdesc.c' line='939' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kstat_irqs_cpu'>
         <parameter type-id='f0981eeb' name='irq' filepath='kernel/irq/irqdesc.c' line='939' column='1'/>
         <parameter type-id='95e97e5e' name='cpu' filepath='kernel/irq/irqdesc.c' line='939' column='1'/>
@@ -145661,8 +146169,8 @@
         <parameter type-id='a0c47697' name='res' filepath='lib/kstrtox.c' line='406' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='kswapd' mangled-name='kswapd' filepath='mm/vmscan.c' line='7046' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kswapd'>
-        <parameter type-id='eaa32e2f' name='p' filepath='mm/vmscan.c' line='7046' column='1'/>
+      <function-decl name='kswapd' mangled-name='kswapd' filepath='mm/vmscan.c' line='7045' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kswapd'>
+        <parameter type-id='eaa32e2f' name='p' filepath='mm/vmscan.c' line='7045' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
       <function-decl name='ksys_sync_helper' mangled-name='ksys_sync_helper' filepath='kernel/power/main.c' line='54' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ksys_sync_helper'>
@@ -145845,44 +146353,44 @@
         <parameter type-id='13103032' name='sock' filepath='net/bluetooth/l2cap_sock.c' line='49' column='1'/>
         <return type-id='b50a4934'/>
       </function-decl>
-      <function-decl name='l2tp_session_create' mangled-name='l2tp_session_create' filepath='net/l2tp/l2tp_core.c' line='1580' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='l2tp_session_create'>
-        <parameter type-id='95e97e5e' name='priv_size' filepath='net/l2tp/l2tp_core.c' line='1580' column='1'/>
-        <parameter type-id='2d83a1b8' name='tunnel' filepath='net/l2tp/l2tp_core.c' line='1580' column='1'/>
-        <parameter type-id='19c2251e' name='session_id' filepath='net/l2tp/l2tp_core.c' line='1580' column='1'/>
-        <parameter type-id='19c2251e' name='peer_session_id' filepath='net/l2tp/l2tp_core.c' line='1581' column='1'/>
-        <parameter type-id='0357a19d' name='cfg' filepath='net/l2tp/l2tp_core.c' line='1581' column='1'/>
+      <function-decl name='l2tp_session_create' mangled-name='l2tp_session_create' filepath='net/l2tp/l2tp_core.c' line='1583' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='l2tp_session_create'>
+        <parameter type-id='95e97e5e' name='priv_size' filepath='net/l2tp/l2tp_core.c' line='1583' column='1'/>
+        <parameter type-id='2d83a1b8' name='tunnel' filepath='net/l2tp/l2tp_core.c' line='1583' column='1'/>
+        <parameter type-id='19c2251e' name='session_id' filepath='net/l2tp/l2tp_core.c' line='1583' column='1'/>
+        <parameter type-id='19c2251e' name='peer_session_id' filepath='net/l2tp/l2tp_core.c' line='1584' column='1'/>
+        <parameter type-id='0357a19d' name='cfg' filepath='net/l2tp/l2tp_core.c' line='1584' column='1'/>
         <return type-id='d35aee0a'/>
       </function-decl>
-      <function-decl name='l2tp_session_delete' mangled-name='l2tp_session_delete' filepath='net/l2tp/l2tp_core.c' line='1547' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='l2tp_session_delete'>
-        <parameter type-id='d35aee0a' name='session' filepath='net/l2tp/l2tp_core.c' line='1547' column='1'/>
+      <function-decl name='l2tp_session_delete' mangled-name='l2tp_session_delete' filepath='net/l2tp/l2tp_core.c' line='1550' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='l2tp_session_delete'>
+        <parameter type-id='d35aee0a' name='session' filepath='net/l2tp/l2tp_core.c' line='1550' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='l2tp_session_get_nth' mangled-name='l2tp_session_get_nth' filepath='net/l2tp/l2tp_core.c' line='288' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='l2tp_session_get_nth'>
-        <parameter type-id='2d83a1b8' name='tunnel' filepath='net/l2tp/l2tp_core.c' line='288' column='1'/>
-        <parameter type-id='95e97e5e' name='nth' filepath='net/l2tp/l2tp_core.c' line='288' column='1'/>
+      <function-decl name='l2tp_session_get_nth' mangled-name='l2tp_session_get_nth' filepath='net/l2tp/l2tp_core.c' line='286' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='l2tp_session_get_nth'>
+        <parameter type-id='2d83a1b8' name='tunnel' filepath='net/l2tp/l2tp_core.c' line='286' column='1'/>
+        <parameter type-id='95e97e5e' name='nth' filepath='net/l2tp/l2tp_core.c' line='286' column='1'/>
         <return type-id='d35aee0a'/>
       </function-decl>
-      <function-decl name='l2tp_session_register' mangled-name='l2tp_session_register' filepath='net/l2tp/l2tp_core.c' line='339' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='l2tp_session_register'>
-        <parameter type-id='d35aee0a' name='session' filepath='net/l2tp/l2tp_core.c' line='339' column='1'/>
-        <parameter type-id='2d83a1b8' name='tunnel' filepath='net/l2tp/l2tp_core.c' line='340' column='1'/>
+      <function-decl name='l2tp_session_register' mangled-name='l2tp_session_register' filepath='net/l2tp/l2tp_core.c' line='337' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='l2tp_session_register'>
+        <parameter type-id='d35aee0a' name='session' filepath='net/l2tp/l2tp_core.c' line='337' column='1'/>
+        <parameter type-id='2d83a1b8' name='tunnel' filepath='net/l2tp/l2tp_core.c' line='338' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='l2tp_session_set_header_len' mangled-name='l2tp_session_set_header_len' filepath='net/l2tp/l2tp_core.c' line='1565' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='l2tp_session_set_header_len'>
-        <parameter type-id='d35aee0a' name='session' filepath='net/l2tp/l2tp_core.c' line='1565' column='1'/>
-        <parameter type-id='95e97e5e' name='version' filepath='net/l2tp/l2tp_core.c' line='1565' column='1'/>
+      <function-decl name='l2tp_session_set_header_len' mangled-name='l2tp_session_set_header_len' filepath='net/l2tp/l2tp_core.c' line='1568' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='l2tp_session_set_header_len'>
+        <parameter type-id='d35aee0a' name='session' filepath='net/l2tp/l2tp_core.c' line='1568' column='1'/>
+        <parameter type-id='95e97e5e' name='version' filepath='net/l2tp/l2tp_core.c' line='1568' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='l2tp_tunnel_create' mangled-name='l2tp_tunnel_create' filepath='net/l2tp/l2tp_core.c' line='1389' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='l2tp_tunnel_create'>
-        <parameter type-id='95e97e5e' name='fd' filepath='net/l2tp/l2tp_core.c' line='1389' column='1'/>
-        <parameter type-id='95e97e5e' name='version' filepath='net/l2tp/l2tp_core.c' line='1389' column='1'/>
-        <parameter type-id='19c2251e' name='tunnel_id' filepath='net/l2tp/l2tp_core.c' line='1389' column='1'/>
-        <parameter type-id='19c2251e' name='peer_tunnel_id' filepath='net/l2tp/l2tp_core.c' line='1389' column='1'/>
-        <parameter type-id='88850643' name='cfg' filepath='net/l2tp/l2tp_core.c' line='1390' column='1'/>
-        <parameter type-id='383758d6' name='tunnelp' filepath='net/l2tp/l2tp_core.c' line='1390' column='1'/>
+      <function-decl name='l2tp_tunnel_create' mangled-name='l2tp_tunnel_create' filepath='net/l2tp/l2tp_core.c' line='1390' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='l2tp_tunnel_create'>
+        <parameter type-id='95e97e5e' name='fd' filepath='net/l2tp/l2tp_core.c' line='1390' column='1'/>
+        <parameter type-id='95e97e5e' name='version' filepath='net/l2tp/l2tp_core.c' line='1390' column='1'/>
+        <parameter type-id='19c2251e' name='tunnel_id' filepath='net/l2tp/l2tp_core.c' line='1390' column='1'/>
+        <parameter type-id='19c2251e' name='peer_tunnel_id' filepath='net/l2tp/l2tp_core.c' line='1390' column='1'/>
+        <parameter type-id='88850643' name='cfg' filepath='net/l2tp/l2tp_core.c' line='1391' column='1'/>
+        <parameter type-id='383758d6' name='tunnelp' filepath='net/l2tp/l2tp_core.c' line='1391' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='l2tp_tunnel_delete' mangled-name='l2tp_tunnel_delete' filepath='net/l2tp/l2tp_core.c' line='1537' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='l2tp_tunnel_delete'>
-        <parameter type-id='2d83a1b8' name='tunnel' filepath='net/l2tp/l2tp_core.c' line='1537' column='1'/>
+      <function-decl name='l2tp_tunnel_delete' mangled-name='l2tp_tunnel_delete' filepath='net/l2tp/l2tp_core.c' line='1540' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='l2tp_tunnel_delete'>
+        <parameter type-id='2d83a1b8' name='tunnel' filepath='net/l2tp/l2tp_core.c' line='1540' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
       <function-decl name='l2tp_tunnel_get' mangled-name='l2tp_tunnel_get' filepath='net/l2tp/l2tp_core.c' line='205' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='l2tp_tunnel_get'>
@@ -145890,30 +146398,30 @@
         <parameter type-id='19c2251e' name='tunnel_id' filepath='net/l2tp/l2tp_core.c' line='205' column='1'/>
         <return type-id='2d83a1b8'/>
       </function-decl>
-      <function-decl name='l2tp_tunnel_get_nth' mangled-name='l2tp_tunnel_get_nth' filepath='net/l2tp/l2tp_core.c' line='225' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='l2tp_tunnel_get_nth'>
-        <parameter type-id='f91cf277' name='net' filepath='net/l2tp/l2tp_core.c' line='225' column='1'/>
-        <parameter type-id='95e97e5e' name='nth' filepath='net/l2tp/l2tp_core.c' line='225' column='1'/>
+      <function-decl name='l2tp_tunnel_get_nth' mangled-name='l2tp_tunnel_get_nth' filepath='net/l2tp/l2tp_core.c' line='222' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='l2tp_tunnel_get_nth'>
+        <parameter type-id='f91cf277' name='net' filepath='net/l2tp/l2tp_core.c' line='222' column='1'/>
+        <parameter type-id='95e97e5e' name='nth' filepath='net/l2tp/l2tp_core.c' line='222' column='1'/>
         <return type-id='2d83a1b8'/>
       </function-decl>
-      <function-decl name='l2tp_tunnel_get_session' mangled-name='l2tp_tunnel_get_session' filepath='net/l2tp/l2tp_core.c' line='245' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='l2tp_tunnel_get_session'>
-        <parameter type-id='2d83a1b8' name='tunnel' filepath='net/l2tp/l2tp_core.c' line='245' column='1'/>
-        <parameter type-id='19c2251e' name='session_id' filepath='net/l2tp/l2tp_core.c' line='246' column='1'/>
+      <function-decl name='l2tp_tunnel_get_session' mangled-name='l2tp_tunnel_get_session' filepath='net/l2tp/l2tp_core.c' line='243' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='l2tp_tunnel_get_session'>
+        <parameter type-id='2d83a1b8' name='tunnel' filepath='net/l2tp/l2tp_core.c' line='243' column='1'/>
+        <parameter type-id='19c2251e' name='session_id' filepath='net/l2tp/l2tp_core.c' line='244' column='1'/>
         <return type-id='d35aee0a'/>
       </function-decl>
-      <function-decl name='l2tp_tunnel_register' mangled-name='l2tp_tunnel_register' filepath='net/l2tp/l2tp_core.c' line='1455' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='l2tp_tunnel_register'>
-        <parameter type-id='2d83a1b8' name='tunnel' filepath='net/l2tp/l2tp_core.c' line='1455' column='1'/>
-        <parameter type-id='a2bff676' name='net' filepath='net/l2tp/l2tp_core.c' line='1455' column='1'/>
-        <parameter type-id='88850643' name='cfg' filepath='net/l2tp/l2tp_core.c' line='1456' column='1'/>
+      <function-decl name='l2tp_tunnel_register' mangled-name='l2tp_tunnel_register' filepath='net/l2tp/l2tp_core.c' line='1456' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='l2tp_tunnel_register'>
+        <parameter type-id='2d83a1b8' name='tunnel' filepath='net/l2tp/l2tp_core.c' line='1456' column='1'/>
+        <parameter type-id='a2bff676' name='net' filepath='net/l2tp/l2tp_core.c' line='1456' column='1'/>
+        <parameter type-id='88850643' name='cfg' filepath='net/l2tp/l2tp_core.c' line='1457' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='l2tp_udp_encap_recv' mangled-name='l2tp_udp_encap_recv' filepath='net/l2tp/l2tp_core.c' line='898' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='l2tp_udp_encap_recv'>
-        <parameter type-id='f772df6d' name='sk' filepath='net/l2tp/l2tp_core.c' line='898' column='1'/>
-        <parameter type-id='0fbf3cfd' name='skb' filepath='net/l2tp/l2tp_core.c' line='898' column='1'/>
+      <function-decl name='l2tp_udp_encap_recv' mangled-name='l2tp_udp_encap_recv' filepath='net/l2tp/l2tp_core.c' line='896' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='l2tp_udp_encap_recv'>
+        <parameter type-id='f772df6d' name='sk' filepath='net/l2tp/l2tp_core.c' line='896' column='1'/>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/l2tp/l2tp_core.c' line='896' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='l2tp_xmit_skb' mangled-name='l2tp_xmit_skb' filepath='net/l2tp/l2tp_core.c' line='1106' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='l2tp_xmit_skb'>
-        <parameter type-id='d35aee0a' name='session' filepath='net/l2tp/l2tp_core.c' line='1106' column='1'/>
-        <parameter type-id='0fbf3cfd' name='skb' filepath='net/l2tp/l2tp_core.c' line='1106' column='1'/>
+      <function-decl name='l2tp_xmit_skb' mangled-name='l2tp_xmit_skb' filepath='net/l2tp/l2tp_core.c' line='1104' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='l2tp_xmit_skb'>
+        <parameter type-id='d35aee0a' name='session' filepath='net/l2tp/l2tp_core.c' line='1104' column='1'/>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/l2tp/l2tp_core.c' line='1104' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
       <function-decl name='led_classdev_flash_register_ext' mangled-name='led_classdev_flash_register_ext' filepath='drivers/leds/led-class-flash.c' line='283' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='led_classdev_flash_register_ext'>
@@ -146075,8 +146583,8 @@
         <parameter type-id='95e97e5e' name='subclass' filepath='net/core/sock.c' line='3220' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='lockref_get' mangled-name='lockref_get' filepath='lib/lockref.c' line='44' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='lockref_get'>
-        <parameter type-id='5bfdb453' name='lockref' filepath='lib/lockref.c' line='44' column='1'/>
+      <function-decl name='lockref_get' mangled-name='lockref_get' filepath='lib/lockref.c' line='43' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='lockref_get'>
+        <parameter type-id='5bfdb453' name='lockref' filepath='lib/lockref.c' line='43' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
       <function-decl name='log_abnormal_wakeup_reason' mangled-name='log_abnormal_wakeup_reason' filepath='kernel/power/wakeup_reason.c' line='249' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='log_abnormal_wakeup_reason'>
@@ -146307,12 +146815,12 @@
         <parameter type-id='95e97e5e' name='value' filepath='drivers/net/phy/mdio_device.c' line='118' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='mdiobus_alloc_size' mangled-name='mdiobus_alloc_size' filepath='drivers/net/phy/mdio_bus.c' line='137' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mdiobus_alloc_size'>
-        <parameter type-id='b59d7dce' name='size' filepath='drivers/net/phy/mdio_bus.c' line='137' column='1'/>
+      <function-decl name='mdiobus_alloc_size' mangled-name='mdiobus_alloc_size' filepath='drivers/net/phy/mdio_bus.c' line='142' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mdiobus_alloc_size'>
+        <parameter type-id='b59d7dce' name='size' filepath='drivers/net/phy/mdio_bus.c' line='142' column='1'/>
         <return type-id='ff47b24b'/>
       </function-decl>
-      <function-decl name='mdiobus_free' mangled-name='mdiobus_free' filepath='drivers/net/phy/mdio_bus.c' line='653' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mdiobus_free'>
-        <parameter type-id='ff47b24b' name='bus' filepath='drivers/net/phy/mdio_bus.c' line='653' column='1'/>
+      <function-decl name='mdiobus_free' mangled-name='mdiobus_free' filepath='drivers/net/phy/mdio_bus.c' line='658' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mdiobus_free'>
+        <parameter type-id='ff47b24b' name='bus' filepath='drivers/net/phy/mdio_bus.c' line='658' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
       <function-decl name='mdiobus_get_phy' mangled-name='mdiobus_get_phy' filepath='drivers/net/phy/mdio_bus.c' line='109' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mdiobus_get_phy'>
@@ -146320,26 +146828,26 @@
         <parameter type-id='95e97e5e' name='addr' filepath='drivers/net/phy/mdio_bus.c' line='109' column='1'/>
         <return type-id='7efbcaaf'/>
       </function-decl>
-      <function-decl name='mdiobus_is_registered_device' mangled-name='mdiobus_is_registered_device' filepath='drivers/net/phy/mdio_bus.c' line='123' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mdiobus_is_registered_device'>
-        <parameter type-id='ff47b24b' name='bus' filepath='drivers/net/phy/mdio_bus.c' line='123' column='1'/>
-        <parameter type-id='95e97e5e' name='addr' filepath='drivers/net/phy/mdio_bus.c' line='123' column='1'/>
+      <function-decl name='mdiobus_is_registered_device' mangled-name='mdiobus_is_registered_device' filepath='drivers/net/phy/mdio_bus.c' line='128' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mdiobus_is_registered_device'>
+        <parameter type-id='ff47b24b' name='bus' filepath='drivers/net/phy/mdio_bus.c' line='128' column='1'/>
+        <parameter type-id='95e97e5e' name='addr' filepath='drivers/net/phy/mdio_bus.c' line='128' column='1'/>
         <return type-id='b50a4934'/>
       </function-decl>
-      <function-decl name='mdiobus_read' mangled-name='mdiobus_read' filepath='drivers/net/phy/mdio_bus.c' line='857' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mdiobus_read'>
-        <parameter type-id='ff47b24b' name='bus' filepath='drivers/net/phy/mdio_bus.c' line='857' column='1'/>
-        <parameter type-id='95e97e5e' name='addr' filepath='drivers/net/phy/mdio_bus.c' line='857' column='1'/>
-        <parameter type-id='19c2251e' name='regnum' filepath='drivers/net/phy/mdio_bus.c' line='857' column='1'/>
+      <function-decl name='mdiobus_read' mangled-name='mdiobus_read' filepath='drivers/net/phy/mdio_bus.c' line='862' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mdiobus_read'>
+        <parameter type-id='ff47b24b' name='bus' filepath='drivers/net/phy/mdio_bus.c' line='862' column='1'/>
+        <parameter type-id='95e97e5e' name='addr' filepath='drivers/net/phy/mdio_bus.c' line='862' column='1'/>
+        <parameter type-id='19c2251e' name='regnum' filepath='drivers/net/phy/mdio_bus.c' line='862' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='mdiobus_unregister' mangled-name='mdiobus_unregister' filepath='drivers/net/phy/mdio_bus.c' line='616' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mdiobus_unregister'>
-        <parameter type-id='ff47b24b' name='bus' filepath='drivers/net/phy/mdio_bus.c' line='616' column='1'/>
+      <function-decl name='mdiobus_unregister' mangled-name='mdiobus_unregister' filepath='drivers/net/phy/mdio_bus.c' line='621' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mdiobus_unregister'>
+        <parameter type-id='ff47b24b' name='bus' filepath='drivers/net/phy/mdio_bus.c' line='621' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='mdiobus_write' mangled-name='mdiobus_write' filepath='drivers/net/phy/mdio_bus.c' line='906' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mdiobus_write'>
-        <parameter type-id='ff47b24b' name='bus' filepath='drivers/net/phy/mdio_bus.c' line='906' column='1'/>
-        <parameter type-id='95e97e5e' name='addr' filepath='drivers/net/phy/mdio_bus.c' line='906' column='1'/>
-        <parameter type-id='19c2251e' name='regnum' filepath='drivers/net/phy/mdio_bus.c' line='906' column='1'/>
-        <parameter type-id='1dc6a898' name='val' filepath='drivers/net/phy/mdio_bus.c' line='906' column='1'/>
+      <function-decl name='mdiobus_write' mangled-name='mdiobus_write' filepath='drivers/net/phy/mdio_bus.c' line='911' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mdiobus_write'>
+        <parameter type-id='ff47b24b' name='bus' filepath='drivers/net/phy/mdio_bus.c' line='911' column='1'/>
+        <parameter type-id='95e97e5e' name='addr' filepath='drivers/net/phy/mdio_bus.c' line='911' column='1'/>
+        <parameter type-id='19c2251e' name='regnum' filepath='drivers/net/phy/mdio_bus.c' line='911' column='1'/>
+        <parameter type-id='1dc6a898' name='val' filepath='drivers/net/phy/mdio_bus.c' line='911' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
       <function-decl name='media_create_intf_link' mangled-name='media_create_intf_link' filepath='drivers/media/mc/mc-entity.c' line='968' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='media_create_intf_link'>
@@ -146495,7 +147003,7 @@
         <return type-id='b50a4934'/>
       </function-decl>
       <var-decl name='mem_section' type-id='e66f2caa' mangled-name='mem_section' visibility='default' filepath='mm/sparse.c' line='27' column='1' elf-symbol-id='mem_section'/>
-      <function-decl name='memblock_end_of_DRAM' mangled-name='memblock_end_of_DRAM' filepath='mm/memblock.c' line='1649' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='memblock_end_of_DRAM'>
+      <function-decl name='memblock_end_of_DRAM' mangled-name='memblock_end_of_DRAM' filepath='mm/memblock.c' line='1655' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='memblock_end_of_DRAM'>
         <return type-id='2522883d'/>
       </function-decl>
       <function-decl name='memblock_free' mangled-name='memblock_free' filepath='mm/memblock.c' line='826' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='memblock_free'>
@@ -146674,11 +147182,11 @@
         <parameter type-id='807869d3' name='ret_succeeded' filepath='mm/migrate.c' line='1448' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='migrate_swap' mangled-name='migrate_swap' filepath='kernel/sched/core.c' line='3261' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='migrate_swap'>
-        <parameter type-id='f23e2572' name='cur' filepath='kernel/sched/core.c' line='3261' column='1'/>
-        <parameter type-id='f23e2572' name='p' filepath='kernel/sched/core.c' line='3261' column='1'/>
-        <parameter type-id='95e97e5e' name='target_cpu' filepath='kernel/sched/core.c' line='3262' column='1'/>
-        <parameter type-id='95e97e5e' name='curr_cpu' filepath='kernel/sched/core.c' line='3262' column='1'/>
+      <function-decl name='migrate_swap' mangled-name='migrate_swap' filepath='kernel/sched/core.c' line='3228' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='migrate_swap'>
+        <parameter type-id='f23e2572' name='cur' filepath='kernel/sched/core.c' line='3228' column='1'/>
+        <parameter type-id='f23e2572' name='p' filepath='kernel/sched/core.c' line='3228' column='1'/>
+        <parameter type-id='95e97e5e' name='target_cpu' filepath='kernel/sched/core.c' line='3229' column='1'/>
+        <parameter type-id='95e97e5e' name='curr_cpu' filepath='kernel/sched/core.c' line='3229' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
       <function-decl name='mii_check_media' mangled-name='mii_check_media' filepath='drivers/net/mii.c' line='502' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mii_check_media'>
@@ -147082,6 +147590,11 @@
         <parameter type-id='7292109c' name='cmd_error' filepath='drivers/mmc/core/mmc_ops.c' line='639' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
+      <function-decl name='mmc_set_blocklen' mangled-name='mmc_set_blocklen' filepath='drivers/mmc/core/core.c' line='1991' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mmc_set_blocklen'>
+        <parameter type-id='13d38dcb' name='card' filepath='drivers/mmc/core/core.c' line='1991' column='1'/>
+        <parameter type-id='f0981eeb' name='blocklen' filepath='drivers/mmc/core/core.c' line='1991' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
       <function-decl name='mmc_set_bus_mode' mangled-name='mmc_set_bus_mode' filepath='drivers/mmc/core/core.c' line='960' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mmc_set_bus_mode'>
         <parameter type-id='dd575c43' name='host' filepath='drivers/mmc/core/core.c' line='960' column='1'/>
         <parameter type-id='f0981eeb' name='mode' filepath='drivers/mmc/core/core.c' line='960' column='1'/>
@@ -147172,12 +147685,12 @@
         <parameter type-id='7359adad' name='expires' filepath='kernel/time/timer.c' line='1086' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='module_layout' mangled-name='module_layout' filepath='kernel/module.c' line='4856' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='module_layout'>
-        <parameter type-id='2730d015' name='mod' filepath='kernel/module.c' line='4856' column='1'/>
-        <parameter type-id='3a498c74' name='ver' filepath='kernel/module.c' line='4857' column='1'/>
-        <parameter type-id='a7c6e908' name='kp' filepath='kernel/module.c' line='4858' column='1'/>
-        <parameter type-id='eefd7061' name='ks' filepath='kernel/module.c' line='4859' column='1'/>
-        <parameter type-id='e525e121' name='tp' filepath='kernel/module.c' line='4860' column='1'/>
+      <function-decl name='module_layout' mangled-name='module_layout' filepath='kernel/module.c' line='4872' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='module_layout'>
+        <parameter type-id='2730d015' name='mod' filepath='kernel/module.c' line='4872' column='1'/>
+        <parameter type-id='3a498c74' name='ver' filepath='kernel/module.c' line='4873' column='1'/>
+        <parameter type-id='a7c6e908' name='kp' filepath='kernel/module.c' line='4874' column='1'/>
+        <parameter type-id='eefd7061' name='ks' filepath='kernel/module.c' line='4875' column='1'/>
+        <parameter type-id='e525e121' name='tp' filepath='kernel/module.c' line='4876' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
       <function-decl name='module_put' mangled-name='module_put' filepath='kernel/module.c' line='1093' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='module_put'>
@@ -147274,20 +147787,20 @@
         <parameter type-id='e0ea832a' name='lock' filepath='kernel/locking/mutex.c' line='283' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='mutex_lock_interruptible' mangled-name='mutex_lock_interruptible' filepath='kernel/locking/mutex.c' line='936' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mutex_lock_interruptible'>
-        <parameter type-id='e0ea832a' name='lock' filepath='kernel/locking/mutex.c' line='936' column='1'/>
+      <function-decl name='mutex_lock_interruptible' mangled-name='mutex_lock_interruptible' filepath='kernel/locking/mutex.c' line='946' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mutex_lock_interruptible'>
+        <parameter type-id='e0ea832a' name='lock' filepath='kernel/locking/mutex.c' line='946' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='mutex_lock_killable' mangled-name='mutex_lock_killable' filepath='kernel/locking/mutex.c' line='960' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mutex_lock_killable'>
-        <parameter type-id='e0ea832a' name='lock' filepath='kernel/locking/mutex.c' line='960' column='1'/>
+      <function-decl name='mutex_lock_killable' mangled-name='mutex_lock_killable' filepath='kernel/locking/mutex.c' line='970' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mutex_lock_killable'>
+        <parameter type-id='e0ea832a' name='lock' filepath='kernel/locking/mutex.c' line='970' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='mutex_trylock' mangled-name='mutex_trylock' filepath='kernel/locking/mutex.c' line='1040' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mutex_trylock'>
-        <parameter type-id='e0ea832a' name='lock' filepath='kernel/locking/mutex.c' line='1040' column='1'/>
+      <function-decl name='mutex_trylock' mangled-name='mutex_trylock' filepath='kernel/locking/mutex.c' line='1050' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mutex_trylock'>
+        <parameter type-id='e0ea832a' name='lock' filepath='kernel/locking/mutex.c' line='1050' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='mutex_unlock' mangled-name='mutex_unlock' filepath='kernel/locking/mutex.c' line='538' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mutex_unlock'>
-        <parameter type-id='e0ea832a' name='lock' filepath='kernel/locking/mutex.c' line='538' column='1'/>
+      <function-decl name='mutex_unlock' mangled-name='mutex_unlock' filepath='kernel/locking/mutex.c' line='548' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mutex_unlock'>
+        <parameter type-id='e0ea832a' name='lock' filepath='kernel/locking/mutex.c' line='548' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
       <function-decl name='n_tty_ioctl_helper' mangled-name='n_tty_ioctl_helper' filepath='drivers/tty/tty_ioctl.c' line='861' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='n_tty_ioctl_helper'>
@@ -147458,6 +147971,18 @@
         <parameter type-id='bdf901f8' name='ops' filepath='net/core/dev.c' line='10771' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
+      <function-decl name='netdev_set_num_tc' mangled-name='netdev_set_num_tc' filepath='net/core/dev.c' line='2828' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='netdev_set_num_tc'>
+        <parameter type-id='68a2d05b' name='dev' filepath='net/core/dev.c' line='2828' column='1'/>
+        <parameter type-id='f9b06939' name='num_tc' filepath='net/core/dev.c' line='2828' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='netdev_set_tc_queue' mangled-name='netdev_set_tc_queue' filepath='net/core/dev.c' line='2814' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='netdev_set_tc_queue'>
+        <parameter type-id='68a2d05b' name='dev' filepath='net/core/dev.c' line='2814' column='1'/>
+        <parameter type-id='f9b06939' name='tc' filepath='net/core/dev.c' line='2814' column='1'/>
+        <parameter type-id='1dc6a898' name='count' filepath='net/core/dev.c' line='2814' column='1'/>
+        <parameter type-id='1dc6a898' name='offset' filepath='net/core/dev.c' line='2814' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
       <function-decl name='netdev_state_change' mangled-name='netdev_state_change' filepath='net/core/dev.c' line='1389' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='netdev_state_change'>
         <parameter type-id='68a2d05b' name='dev' filepath='net/core/dev.c' line='1389' column='1'/>
         <return type-id='48b5725f'/>
@@ -147477,6 +148002,11 @@
         <parameter type-id='68a2d05b' name='upper_dev' filepath='net/core/dev.c' line='8250' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
+      <function-decl name='netdev_upper_get_next_dev_rcu' mangled-name='netdev_upper_get_next_dev_rcu' filepath='net/core/dev.c' line='7362' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='netdev_upper_get_next_dev_rcu'>
+        <parameter type-id='68a2d05b' name='dev' filepath='net/core/dev.c' line='7362' column='1'/>
+        <parameter type-id='de160490' name='iter' filepath='net/core/dev.c' line='7363' column='1'/>
+        <return type-id='68a2d05b'/>
+      </function-decl>
       <function-decl name='netdev_warn' mangled-name='netdev_warn' filepath='net/core/dev.c' line='11497' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='netdev_warn'>
         <parameter type-id='2ce52478' name='dev' filepath='net/core/dev.c' line='11497' column='1'/>
         <parameter type-id='80f4b756' name='fmt' filepath='net/core/dev.c' line='11497' column='1'/>
@@ -147549,43 +148079,43 @@
         <parameter type-id='35b28c4f' name='dev_queue' filepath='net/core/dev.c' line='3084' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='netlink_ack' mangled-name='netlink_ack' filepath='net/netlink/af_netlink.c' line='2425' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='netlink_ack'>
-        <parameter type-id='0fbf3cfd' name='in_skb' filepath='net/netlink/af_netlink.c' line='2425' column='1'/>
-        <parameter type-id='c2074578' name='nlh' filepath='net/netlink/af_netlink.c' line='2425' column='1'/>
-        <parameter type-id='95e97e5e' name='err' filepath='net/netlink/af_netlink.c' line='2425' column='1'/>
-        <parameter type-id='f1dc7839' name='extack' filepath='net/netlink/af_netlink.c' line='2426' column='1'/>
+      <function-decl name='netlink_ack' mangled-name='netlink_ack' filepath='net/netlink/af_netlink.c' line='2435' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='netlink_ack'>
+        <parameter type-id='0fbf3cfd' name='in_skb' filepath='net/netlink/af_netlink.c' line='2435' column='1'/>
+        <parameter type-id='c2074578' name='nlh' filepath='net/netlink/af_netlink.c' line='2435' column='1'/>
+        <parameter type-id='95e97e5e' name='err' filepath='net/netlink/af_netlink.c' line='2435' column='1'/>
+        <parameter type-id='f1dc7839' name='extack' filepath='net/netlink/af_netlink.c' line='2436' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='netlink_broadcast' mangled-name='netlink_broadcast' filepath='net/netlink/af_netlink.c' line='1550' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='netlink_broadcast'>
-        <parameter type-id='f772df6d' name='ssk' filepath='net/netlink/af_netlink.c' line='1550' column='1'/>
-        <parameter type-id='0fbf3cfd' name='skb' filepath='net/netlink/af_netlink.c' line='1550' column='1'/>
-        <parameter type-id='19c2251e' name='portid' filepath='net/netlink/af_netlink.c' line='1550' column='1'/>
-        <parameter type-id='19c2251e' name='group' filepath='net/netlink/af_netlink.c' line='1551' column='1'/>
-        <parameter type-id='3eb7c31c' name='allocation' filepath='net/netlink/af_netlink.c' line='1551' column='1'/>
+      <function-decl name='netlink_broadcast' mangled-name='netlink_broadcast' filepath='net/netlink/af_netlink.c' line='1559' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='netlink_broadcast'>
+        <parameter type-id='f772df6d' name='ssk' filepath='net/netlink/af_netlink.c' line='1559' column='1'/>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/netlink/af_netlink.c' line='1559' column='1'/>
+        <parameter type-id='19c2251e' name='portid' filepath='net/netlink/af_netlink.c' line='1559' column='1'/>
+        <parameter type-id='19c2251e' name='group' filepath='net/netlink/af_netlink.c' line='1560' column='1'/>
+        <parameter type-id='3eb7c31c' name='allocation' filepath='net/netlink/af_netlink.c' line='1560' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='netlink_kernel_release' mangled-name='netlink_kernel_release' filepath='net/netlink/af_netlink.c' line='2124' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='netlink_kernel_release'>
-        <parameter type-id='f772df6d' name='sk' filepath='net/netlink/af_netlink.c' line='2124' column='1'/>
+      <function-decl name='netlink_kernel_release' mangled-name='netlink_kernel_release' filepath='net/netlink/af_netlink.c' line='2134' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='netlink_kernel_release'>
+        <parameter type-id='f772df6d' name='sk' filepath='net/netlink/af_netlink.c' line='2134' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='netlink_net_capable' mangled-name='netlink_net_capable' filepath='net/netlink/af_netlink.c' line='919' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='netlink_net_capable'>
-        <parameter type-id='11f4a000' name='skb' filepath='net/netlink/af_netlink.c' line='919' column='1'/>
-        <parameter type-id='95e97e5e' name='cap' filepath='net/netlink/af_netlink.c' line='919' column='1'/>
+      <function-decl name='netlink_net_capable' mangled-name='netlink_net_capable' filepath='net/netlink/af_netlink.c' line='921' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='netlink_net_capable'>
+        <parameter type-id='11f4a000' name='skb' filepath='net/netlink/af_netlink.c' line='921' column='1'/>
+        <parameter type-id='95e97e5e' name='cap' filepath='net/netlink/af_netlink.c' line='921' column='1'/>
         <return type-id='b50a4934'/>
       </function-decl>
-      <function-decl name='netlink_register_notifier' mangled-name='netlink_register_notifier' filepath='net/netlink/af_netlink.c' line='2763' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='netlink_register_notifier'>
-        <parameter type-id='d504f73d' name='nb' filepath='net/netlink/af_netlink.c' line='2763' column='1'/>
+      <function-decl name='netlink_register_notifier' mangled-name='netlink_register_notifier' filepath='net/netlink/af_netlink.c' line='2773' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='netlink_register_notifier'>
+        <parameter type-id='d504f73d' name='nb' filepath='net/netlink/af_netlink.c' line='2773' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='netlink_unicast' mangled-name='netlink_unicast' filepath='net/netlink/af_netlink.c' line='1330' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='netlink_unicast'>
-        <parameter type-id='f772df6d' name='ssk' filepath='net/netlink/af_netlink.c' line='1330' column='1'/>
-        <parameter type-id='0fbf3cfd' name='skb' filepath='net/netlink/af_netlink.c' line='1330' column='1'/>
-        <parameter type-id='19c2251e' name='portid' filepath='net/netlink/af_netlink.c' line='1331' column='1'/>
-        <parameter type-id='95e97e5e' name='nonblock' filepath='net/netlink/af_netlink.c' line='1331' column='1'/>
+      <function-decl name='netlink_unicast' mangled-name='netlink_unicast' filepath='net/netlink/af_netlink.c' line='1339' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='netlink_unicast'>
+        <parameter type-id='f772df6d' name='ssk' filepath='net/netlink/af_netlink.c' line='1339' column='1'/>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/netlink/af_netlink.c' line='1339' column='1'/>
+        <parameter type-id='19c2251e' name='portid' filepath='net/netlink/af_netlink.c' line='1340' column='1'/>
+        <parameter type-id='95e97e5e' name='nonblock' filepath='net/netlink/af_netlink.c' line='1340' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='netlink_unregister_notifier' mangled-name='netlink_unregister_notifier' filepath='net/netlink/af_netlink.c' line='2769' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='netlink_unregister_notifier'>
-        <parameter type-id='d504f73d' name='nb' filepath='net/netlink/af_netlink.c' line='2769' column='1'/>
+      <function-decl name='netlink_unregister_notifier' mangled-name='netlink_unregister_notifier' filepath='net/netlink/af_netlink.c' line='2779' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='netlink_unregister_notifier'>
+        <parameter type-id='d504f73d' name='nb' filepath='net/netlink/af_netlink.c' line='2779' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
       <function-decl name='new_inode' mangled-name='new_inode' filepath='fs/inode.c' line='960' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='new_inode'>
@@ -147667,62 +148197,62 @@
         <parameter type-id='f0981eeb' name='hookcount' filepath='net/netfilter/core.c' line='572' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='nla_append' mangled-name='nla_append' filepath='lib/nlattr.c' line='1113' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='nla_append'>
-        <parameter type-id='0fbf3cfd' name='skb' filepath='lib/nlattr.c' line='1113' column='1'/>
-        <parameter type-id='95e97e5e' name='attrlen' filepath='lib/nlattr.c' line='1113' column='1'/>
-        <parameter type-id='eaa32e2f' name='data' filepath='lib/nlattr.c' line='1113' column='1'/>
+      <function-decl name='nla_append' mangled-name='nla_append' filepath='lib/nlattr.c' line='1116' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='nla_append'>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='lib/nlattr.c' line='1116' column='1'/>
+        <parameter type-id='95e97e5e' name='attrlen' filepath='lib/nlattr.c' line='1116' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='lib/nlattr.c' line='1116' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='nla_find' mangled-name='nla_find' filepath='lib/nlattr.c' line='698' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='nla_find'>
-        <parameter type-id='0f2a7ce5' name='head' filepath='lib/nlattr.c' line='698' column='1'/>
-        <parameter type-id='95e97e5e' name='len' filepath='lib/nlattr.c' line='698' column='1'/>
-        <parameter type-id='95e97e5e' name='attrtype' filepath='lib/nlattr.c' line='698' column='1'/>
+      <function-decl name='nla_find' mangled-name='nla_find' filepath='lib/nlattr.c' line='701' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='nla_find'>
+        <parameter type-id='0f2a7ce5' name='head' filepath='lib/nlattr.c' line='701' column='1'/>
+        <parameter type-id='95e97e5e' name='len' filepath='lib/nlattr.c' line='701' column='1'/>
+        <parameter type-id='95e97e5e' name='attrtype' filepath='lib/nlattr.c' line='701' column='1'/>
         <return type-id='6fcaf91e'/>
       </function-decl>
-      <function-decl name='nla_memcpy' mangled-name='nla_memcpy' filepath='lib/nlattr.c' line='789' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='nla_memcpy'>
-        <parameter type-id='eaa32e2f' name='dest' filepath='lib/nlattr.c' line='789' column='1'/>
-        <parameter type-id='0f2a7ce5' name='src' filepath='lib/nlattr.c' line='789' column='1'/>
-        <parameter type-id='95e97e5e' name='count' filepath='lib/nlattr.c' line='789' column='1'/>
+      <function-decl name='nla_memcpy' mangled-name='nla_memcpy' filepath='lib/nlattr.c' line='792' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='nla_memcpy'>
+        <parameter type-id='eaa32e2f' name='dest' filepath='lib/nlattr.c' line='792' column='1'/>
+        <parameter type-id='0f2a7ce5' name='src' filepath='lib/nlattr.c' line='792' column='1'/>
+        <parameter type-id='95e97e5e' name='count' filepath='lib/nlattr.c' line='792' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='nla_put' mangled-name='nla_put' filepath='lib/nlattr.c' line='1047' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='nla_put'>
-        <parameter type-id='0fbf3cfd' name='skb' filepath='lib/nlattr.c' line='1047' column='1'/>
-        <parameter type-id='95e97e5e' name='attrtype' filepath='lib/nlattr.c' line='1047' column='1'/>
-        <parameter type-id='95e97e5e' name='attrlen' filepath='lib/nlattr.c' line='1047' column='1'/>
-        <parameter type-id='eaa32e2f' name='data' filepath='lib/nlattr.c' line='1047' column='1'/>
+      <function-decl name='nla_put' mangled-name='nla_put' filepath='lib/nlattr.c' line='1050' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='nla_put'>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='lib/nlattr.c' line='1050' column='1'/>
+        <parameter type-id='95e97e5e' name='attrtype' filepath='lib/nlattr.c' line='1050' column='1'/>
+        <parameter type-id='95e97e5e' name='attrlen' filepath='lib/nlattr.c' line='1050' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='lib/nlattr.c' line='1050' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='nla_put_64bit' mangled-name='nla_put_64bit' filepath='lib/nlattr.c' line='1068' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='nla_put_64bit'>
-        <parameter type-id='0fbf3cfd' name='skb' filepath='lib/nlattr.c' line='1068' column='1'/>
-        <parameter type-id='95e97e5e' name='attrtype' filepath='lib/nlattr.c' line='1068' column='1'/>
-        <parameter type-id='95e97e5e' name='attrlen' filepath='lib/nlattr.c' line='1068' column='1'/>
-        <parameter type-id='eaa32e2f' name='data' filepath='lib/nlattr.c' line='1069' column='1'/>
-        <parameter type-id='95e97e5e' name='padattr' filepath='lib/nlattr.c' line='1069' column='1'/>
+      <function-decl name='nla_put_64bit' mangled-name='nla_put_64bit' filepath='lib/nlattr.c' line='1071' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='nla_put_64bit'>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='lib/nlattr.c' line='1071' column='1'/>
+        <parameter type-id='95e97e5e' name='attrtype' filepath='lib/nlattr.c' line='1071' column='1'/>
+        <parameter type-id='95e97e5e' name='attrlen' filepath='lib/nlattr.c' line='1071' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='lib/nlattr.c' line='1072' column='1'/>
+        <parameter type-id='95e97e5e' name='padattr' filepath='lib/nlattr.c' line='1072' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='nla_put_nohdr' mangled-name='nla_put_nohdr' filepath='lib/nlattr.c' line='1094' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='nla_put_nohdr'>
-        <parameter type-id='0fbf3cfd' name='skb' filepath='lib/nlattr.c' line='1094' column='1'/>
-        <parameter type-id='95e97e5e' name='attrlen' filepath='lib/nlattr.c' line='1094' column='1'/>
-        <parameter type-id='eaa32e2f' name='data' filepath='lib/nlattr.c' line='1094' column='1'/>
+      <function-decl name='nla_put_nohdr' mangled-name='nla_put_nohdr' filepath='lib/nlattr.c' line='1097' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='nla_put_nohdr'>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='lib/nlattr.c' line='1097' column='1'/>
+        <parameter type-id='95e97e5e' name='attrlen' filepath='lib/nlattr.c' line='1097' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='lib/nlattr.c' line='1097' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='nla_reserve' mangled-name='nla_reserve' filepath='lib/nlattr.c' line='920' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='nla_reserve'>
-        <parameter type-id='0fbf3cfd' name='skb' filepath='lib/nlattr.c' line='920' column='1'/>
-        <parameter type-id='95e97e5e' name='attrtype' filepath='lib/nlattr.c' line='920' column='1'/>
-        <parameter type-id='95e97e5e' name='attrlen' filepath='lib/nlattr.c' line='920' column='1'/>
+      <function-decl name='nla_reserve' mangled-name='nla_reserve' filepath='lib/nlattr.c' line='923' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='nla_reserve'>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='lib/nlattr.c' line='923' column='1'/>
+        <parameter type-id='95e97e5e' name='attrtype' filepath='lib/nlattr.c' line='923' column='1'/>
+        <parameter type-id='95e97e5e' name='attrlen' filepath='lib/nlattr.c' line='923' column='1'/>
         <return type-id='6fcaf91e'/>
       </function-decl>
-      <function-decl name='nla_reserve_64bit' mangled-name='nla_reserve_64bit' filepath='lib/nlattr.c' line='943' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='nla_reserve_64bit'>
-        <parameter type-id='0fbf3cfd' name='skb' filepath='lib/nlattr.c' line='943' column='1'/>
-        <parameter type-id='95e97e5e' name='attrtype' filepath='lib/nlattr.c' line='943' column='1'/>
-        <parameter type-id='95e97e5e' name='attrlen' filepath='lib/nlattr.c' line='943' column='1'/>
-        <parameter type-id='95e97e5e' name='padattr' filepath='lib/nlattr.c' line='944' column='1'/>
+      <function-decl name='nla_reserve_64bit' mangled-name='nla_reserve_64bit' filepath='lib/nlattr.c' line='946' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='nla_reserve_64bit'>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='lib/nlattr.c' line='946' column='1'/>
+        <parameter type-id='95e97e5e' name='attrtype' filepath='lib/nlattr.c' line='946' column='1'/>
+        <parameter type-id='95e97e5e' name='attrlen' filepath='lib/nlattr.c' line='946' column='1'/>
+        <parameter type-id='95e97e5e' name='padattr' filepath='lib/nlattr.c' line='947' column='1'/>
         <return type-id='6fcaf91e'/>
       </function-decl>
-      <function-decl name='nla_strscpy' mangled-name='nla_strscpy' filepath='lib/nlattr.c' line='725' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='nla_strscpy'>
-        <parameter type-id='26a90f95' name='dst' filepath='lib/nlattr.c' line='725' column='1'/>
-        <parameter type-id='0f2a7ce5' name='nla' filepath='lib/nlattr.c' line='725' column='1'/>
-        <parameter type-id='b59d7dce' name='dstsize' filepath='lib/nlattr.c' line='725' column='1'/>
+      <function-decl name='nla_strscpy' mangled-name='nla_strscpy' filepath='lib/nlattr.c' line='728' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='nla_strscpy'>
+        <parameter type-id='26a90f95' name='dst' filepath='lib/nlattr.c' line='728' column='1'/>
+        <parameter type-id='0f2a7ce5' name='nla' filepath='lib/nlattr.c' line='728' column='1'/>
+        <parameter type-id='b59d7dce' name='dstsize' filepath='lib/nlattr.c' line='728' column='1'/>
         <return type-id='79a0948f'/>
       </function-decl>
       <function-decl name='no_llseek' mangled-name='no_llseek' filepath='fs/read_write.c' line='230' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='no_llseek'>
@@ -147757,6 +148287,9 @@
         <return type-id='95e97e5e'/>
       </function-decl>
       <var-decl name='nr_cpu_ids' type-id='f0981eeb' mangled-name='nr_cpu_ids' visibility='default' filepath='kernel/smp.c' line='1073' column='1' elf-symbol-id='nr_cpu_ids'/>
+      <function-decl name='nr_free_buffer_pages' mangled-name='nr_free_buffer_pages' filepath='mm/page_alloc.c' line='5918' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='nr_free_buffer_pages'>
+        <return type-id='7359adad'/>
+      </function-decl>
       <function-decl name='nr_ipi_get' mangled-name='nr_ipi_get' filepath='arch/arm64/kernel/smp.c' line='1146' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='nr_ipi_get'>
         <return type-id='95e97e5e'/>
       </function-decl>
@@ -147959,8 +148492,8 @@
         <parameter type-id='9a537bbe' name='cpu_node' filepath='drivers/of/base.c' line='401' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='of_cpufreq_cooling_register' mangled-name='of_cpufreq_cooling_register' filepath='drivers/thermal/cpufreq_cooling.c' line='656' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_cpufreq_cooling_register'>
-        <parameter type-id='343c3ae4' name='policy' filepath='drivers/thermal/cpufreq_cooling.c' line='656' column='1'/>
+      <function-decl name='of_cpufreq_cooling_register' mangled-name='of_cpufreq_cooling_register' filepath='drivers/thermal/cpufreq_cooling.c' line='653' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_cpufreq_cooling_register'>
+        <parameter type-id='343c3ae4' name='policy' filepath='drivers/thermal/cpufreq_cooling.c' line='653' column='1'/>
         <return type-id='2feec21f'/>
       </function-decl>
       <function-decl name='of_css' mangled-name='of_css' filepath='kernel/cgroup/cgroup.c' line='654' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_css'>
@@ -148023,8 +148556,8 @@
         <parameter type-id='eaa32e2f' name='data' filepath='drivers/dma/of-dma.c' line='121' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='of_dma_is_coherent' mangled-name='of_dma_is_coherent' filepath='drivers/of/address.c' line='1050' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_dma_is_coherent'>
-        <parameter type-id='9a537bbe' name='np' filepath='drivers/of/address.c' line='1050' column='1'/>
+      <function-decl name='of_dma_is_coherent' mangled-name='of_dma_is_coherent' filepath='drivers/of/address.c' line='1059' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_dma_is_coherent'>
+        <parameter type-id='9a537bbe' name='np' filepath='drivers/of/address.c' line='1059' column='1'/>
         <return type-id='b50a4934'/>
       </function-decl>
       <function-decl name='of_dma_simple_xlate' mangled-name='of_dma_simple_xlate' filepath='drivers/dma/of-dma.c' line='321' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_dma_simple_xlate'>
@@ -148050,10 +148583,10 @@
         <parameter type-id='83de9118' name='orientation' filepath='drivers/gpu/drm/drm_panel.c' line='278' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='of_fdt_unflatten_tree' mangled-name='of_fdt_unflatten_tree' filepath='drivers/of/fdt.c' line='455' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_fdt_unflatten_tree'>
-        <parameter type-id='f9b37274' name='blob' filepath='drivers/of/fdt.c' line='455' column='1'/>
-        <parameter type-id='9a537bbe' name='dad' filepath='drivers/of/fdt.c' line='456' column='1'/>
-        <parameter type-id='856b89fc' name='mynodes' filepath='drivers/of/fdt.c' line='457' column='1'/>
+      <function-decl name='of_fdt_unflatten_tree' mangled-name='of_fdt_unflatten_tree' filepath='drivers/of/fdt.c' line='454' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_fdt_unflatten_tree'>
+        <parameter type-id='f9b37274' name='blob' filepath='drivers/of/fdt.c' line='454' column='1'/>
+        <parameter type-id='9a537bbe' name='dad' filepath='drivers/of/fdt.c' line='455' column='1'/>
+        <parameter type-id='856b89fc' name='mynodes' filepath='drivers/of/fdt.c' line='456' column='1'/>
         <return type-id='eaa32e2f'/>
       </function-decl>
       <function-decl name='of_find_all_nodes' mangled-name='of_find_all_nodes' filepath='drivers/of/base.c' line='251' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_find_all_nodes'>
@@ -148385,8 +148918,8 @@
         <parameter type-id='0afa6ea3' name='node' filepath='drivers/of/base.c' line='1110' column='1'/>
         <return type-id='e5ce629e'/>
       </function-decl>
-      <function-decl name='of_mdio_find_bus' mangled-name='of_mdio_find_bus' filepath='drivers/net/phy/mdio_bus.c' line='427' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_mdio_find_bus'>
-        <parameter type-id='9a537bbe' name='mdio_bus_np' filepath='drivers/net/phy/mdio_bus.c' line='427' column='1'/>
+      <function-decl name='of_mdio_find_bus' mangled-name='of_mdio_find_bus' filepath='drivers/net/phy/mdio_bus.c' line='432' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_mdio_find_bus'>
+        <parameter type-id='9a537bbe' name='mdio_bus_np' filepath='drivers/net/phy/mdio_bus.c' line='432' column='1'/>
         <return type-id='ff47b24b'/>
       </function-decl>
       <function-decl name='of_mdiobus_register' mangled-name='of_mdiobus_register' filepath='drivers/net/mdio/of_mdio.c' line='149' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_mdiobus_register'>
@@ -148449,6 +148982,10 @@
         <parameter type-id='9a537bbe' name='np' filepath='drivers/pci/of.c' line='160' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
+      <function-decl name='of_pci_get_max_link_speed' mangled-name='of_pci_get_max_link_speed' filepath='drivers/pci/of.c' line='619' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_pci_get_max_link_speed'>
+        <parameter type-id='9a537bbe' name='node' filepath='drivers/pci/of.c' line='619' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
       <function-decl name='of_pci_parse_bus_range' mangled-name='of_pci_parse_bus_range' filepath='drivers/pci/of.c' line='180' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_pci_parse_bus_range'>
         <parameter type-id='9a537bbe' name='node' filepath='drivers/pci/of.c' line='180' column='1'/>
         <parameter type-id='c9d64c0d' name='res' filepath='drivers/pci/of.c' line='180' column='1'/>
@@ -148649,18 +149186,18 @@
         <parameter type-id='ddcd89c6' name='prop' filepath='drivers/of/base.c' line='1859' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='of_reserved_mem_device_init_by_idx' mangled-name='of_reserved_mem_device_init_by_idx' filepath='drivers/of/of_reserved_mem.c' line='330' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_reserved_mem_device_init_by_idx'>
-        <parameter type-id='fa0b179b' name='dev' filepath='drivers/of/of_reserved_mem.c' line='330' column='1'/>
-        <parameter type-id='9a537bbe' name='np' filepath='drivers/of/of_reserved_mem.c' line='331' column='1'/>
-        <parameter type-id='95e97e5e' name='idx' filepath='drivers/of/of_reserved_mem.c' line='331' column='1'/>
+      <function-decl name='of_reserved_mem_device_init_by_idx' mangled-name='of_reserved_mem_device_init_by_idx' filepath='drivers/of/of_reserved_mem.c' line='331' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_reserved_mem_device_init_by_idx'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/of/of_reserved_mem.c' line='331' column='1'/>
+        <parameter type-id='9a537bbe' name='np' filepath='drivers/of/of_reserved_mem.c' line='332' column='1'/>
+        <parameter type-id='95e97e5e' name='idx' filepath='drivers/of/of_reserved_mem.c' line='332' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='of_reserved_mem_device_release' mangled-name='of_reserved_mem_device_release' filepath='drivers/of/of_reserved_mem.c' line='404' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_reserved_mem_device_release'>
-        <parameter type-id='fa0b179b' name='dev' filepath='drivers/of/of_reserved_mem.c' line='404' column='1'/>
+      <function-decl name='of_reserved_mem_device_release' mangled-name='of_reserved_mem_device_release' filepath='drivers/of/of_reserved_mem.c' line='405' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_reserved_mem_device_release'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/of/of_reserved_mem.c' line='405' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='of_reserved_mem_lookup' mangled-name='of_reserved_mem_lookup' filepath='drivers/of/of_reserved_mem.c' line='434' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_reserved_mem_lookup'>
-        <parameter type-id='9a537bbe' name='np' filepath='drivers/of/of_reserved_mem.c' line='434' column='1'/>
+      <function-decl name='of_reserved_mem_lookup' mangled-name='of_reserved_mem_lookup' filepath='drivers/of/of_reserved_mem.c' line='435' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_reserved_mem_lookup'>
+        <parameter type-id='9a537bbe' name='np' filepath='drivers/of/of_reserved_mem.c' line='435' column='1'/>
         <return type-id='f7f718cb'/>
       </function-decl>
       <function-decl name='of_reset_control_array_get' mangled-name='of_reset_control_array_get' filepath='drivers/reset/core.c' line='1161' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_reset_control_array_get'>
@@ -148765,15 +149302,15 @@
         <parameter type-id='95e97e5e' name='err' filepath='mm/filemap.c' line='1616' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='page_frag_alloc_align' mangled-name='page_frag_alloc_align' filepath='mm/page_alloc.c' line='5700' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='page_frag_alloc_align'>
-        <parameter type-id='34e4f518' name='nc' filepath='mm/page_alloc.c' line='5700' column='1'/>
-        <parameter type-id='f0981eeb' name='fragsz' filepath='mm/page_alloc.c' line='5701' column='1'/>
-        <parameter type-id='3eb7c31c' name='gfp_mask' filepath='mm/page_alloc.c' line='5701' column='1'/>
-        <parameter type-id='f0981eeb' name='align_mask' filepath='mm/page_alloc.c' line='5702' column='1'/>
+      <function-decl name='page_frag_alloc_align' mangled-name='page_frag_alloc_align' filepath='mm/page_alloc.c' line='5703' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='page_frag_alloc_align'>
+        <parameter type-id='34e4f518' name='nc' filepath='mm/page_alloc.c' line='5703' column='1'/>
+        <parameter type-id='f0981eeb' name='fragsz' filepath='mm/page_alloc.c' line='5704' column='1'/>
+        <parameter type-id='3eb7c31c' name='gfp_mask' filepath='mm/page_alloc.c' line='5704' column='1'/>
+        <parameter type-id='f0981eeb' name='align_mask' filepath='mm/page_alloc.c' line='5705' column='1'/>
         <return type-id='eaa32e2f'/>
       </function-decl>
-      <function-decl name='page_frag_free' mangled-name='page_frag_free' filepath='mm/page_alloc.c' line='5776' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='page_frag_free'>
-        <parameter type-id='eaa32e2f' name='addr' filepath='mm/page_alloc.c' line='5776' column='1'/>
+      <function-decl name='page_frag_free' mangled-name='page_frag_free' filepath='mm/page_alloc.c' line='5779' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='page_frag_free'>
+        <parameter type-id='eaa32e2f' name='addr' filepath='mm/page_alloc.c' line='5779' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
       <function-decl name='page_get_link' mangled-name='page_get_link' filepath='fs/namei.c' line='4963' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='page_get_link'>
@@ -148886,13 +149423,13 @@
         <parameter type-id='933bf462' name='tag' filepath='mm/swap.c' line='1158' column='1'/>
         <return type-id='f0981eeb'/>
       </function-decl>
-      <function-decl name='panic' mangled-name='panic' filepath='kernel/panic.c' line='178' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='panic'>
-        <parameter type-id='80f4b756' name='fmt' filepath='kernel/panic.c' line='178' column='1'/>
+      <function-decl name='panic' mangled-name='panic' filepath='kernel/panic.c' line='245' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='panic'>
+        <parameter type-id='80f4b756' name='fmt' filepath='kernel/panic.c' line='245' column='1'/>
         <parameter is-variadic='yes'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <var-decl name='panic_notifier_list' type-id='dbd58f6e' mangled-name='panic_notifier_list' visibility='default' filepath='kernel/panic.c' line='70' column='1' elf-symbol-id='panic_notifier_list'/>
-      <var-decl name='panic_timeout' type-id='95e97e5e' mangled-name='panic_timeout' visibility='default' filepath='kernel/panic.c' line='59' column='1' elf-symbol-id='panic_timeout'/>
+      <var-decl name='panic_notifier_list' type-id='dbd58f6e' mangled-name='panic_notifier_list' visibility='default' filepath='kernel/panic.c' line='74' column='1' elf-symbol-id='panic_notifier_list'/>
+      <var-decl name='panic_timeout' type-id='95e97e5e' mangled-name='panic_timeout' visibility='default' filepath='kernel/panic.c' line='63' column='1' elf-symbol-id='panic_timeout'/>
       <var-decl name='param_array_ops' type-id='95d0d4e8' mangled-name='param_array_ops' visibility='default' filepath='kernel/params.c' line='503' column='1' elf-symbol-id='param_array_ops'/>
       <function-decl name='param_get_bool' mangled-name='param_get_bool' filepath='kernel/params.c' line='317' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='param_get_bool'>
         <parameter type-id='26a90f95' name='buffer' filepath='kernel/params.c' line='317' column='1'/>
@@ -149021,6 +149558,10 @@
         <parameter type-id='d1feb554' name='bus' filepath='drivers/pci/setup-bus.c' line='2228' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
+      <function-decl name='pci_ats_supported' mangled-name='pci_ats_supported' filepath='drivers/pci/ats.c' line='40' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_ats_supported'>
+        <parameter type-id='85196e3f' name='dev' filepath='drivers/pci/ats.c' line='40' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
       <function-decl name='pci_bus_add_devices' mangled-name='pci_bus_add_devices' filepath='drivers/pci/bus.c' line='338' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_bus_add_devices'>
         <parameter type-id='b425394d' name='bus' filepath='drivers/pci/bus.c' line='338' column='1'/>
         <return type-id='48b5725f'/>
@@ -149077,14 +149618,18 @@
         <parameter type-id='85196e3f' name='dev' filepath='drivers/pci/pci-driver.c' line='1506' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='pci_device_group' mangled-name='pci_device_group' filepath='drivers/iommu/iommu.c' line='1448' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_device_group'>
-        <parameter type-id='fa0b179b' name='dev' filepath='drivers/iommu/iommu.c' line='1448' column='1'/>
+      <function-decl name='pci_device_group' mangled-name='pci_device_group' filepath='drivers/iommu/iommu.c' line='1464' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_device_group'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/iommu/iommu.c' line='1464' column='1'/>
         <return type-id='0b19fc54'/>
       </function-decl>
       <function-decl name='pci_device_is_present' mangled-name='pci_device_is_present' filepath='drivers/pci/pci.c' line='6382' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_device_is_present'>
         <parameter type-id='85196e3f' name='pdev' filepath='drivers/pci/pci.c' line='6382' column='1'/>
         <return type-id='b50a4934'/>
       </function-decl>
+      <function-decl name='pci_disable_ats' mangled-name='pci_disable_ats' filepath='drivers/pci/ats.c' line='94' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_disable_ats'>
+        <parameter type-id='85196e3f' name='dev' filepath='drivers/pci/ats.c' line='94' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
       <function-decl name='pci_disable_device' mangled-name='pci_disable_device' filepath='drivers/pci/pci.c' line='2174' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_disable_device'>
         <parameter type-id='85196e3f' name='dev' filepath='drivers/pci/pci.c' line='2174' column='1'/>
         <return type-id='48b5725f'/>
@@ -149115,6 +149660,11 @@
         <parameter type-id='19c2251e' name='cap_mask' filepath='drivers/pci/pci.c' line='3728' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
+      <function-decl name='pci_enable_ats' mangled-name='pci_enable_ats' filepath='drivers/pci/ats.c' line='56' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_enable_ats'>
+        <parameter type-id='85196e3f' name='dev' filepath='drivers/pci/ats.c' line='56' column='1'/>
+        <parameter type-id='95e97e5e' name='ps' filepath='drivers/pci/ats.c' line='56' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
       <function-decl name='pci_enable_device' mangled-name='pci_enable_device' filepath='drivers/pci/pci.c' line='1981' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_enable_device'>
         <parameter type-id='85196e3f' name='dev' filepath='drivers/pci/pci.c' line='1981' column='1'/>
         <return type-id='95e97e5e'/>
@@ -149623,6 +150173,7 @@
         <parameter type-id='85196e3f' name='dev' filepath='drivers/pci/pci.c' line='6004' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
+      <var-decl name='pcie_link_speed' type-id='32625dbc' mangled-name='pcie_link_speed' visibility='default' filepath='drivers/pci/probe.c' line='675' column='1' elf-symbol-id='pcie_link_speed'/>
       <function-decl name='pcie_set_mps' mangled-name='pcie_set_mps' filepath='drivers/pci/pci.c' line='6022' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pcie_set_mps'>
         <parameter type-id='85196e3f' name='dev' filepath='drivers/pci/pci.c' line='6022' column='1'/>
         <parameter type-id='95e97e5e' name='mps' filepath='drivers/pci/pci.c' line='6022' column='1'/>
@@ -149820,6 +150371,7 @@
         <parameter type-id='7efbcaaf' name='phydev' filepath='drivers/net/phy/phy_device.c' line='1206' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
+      <var-decl name='phy_basic_features' type-id='f05e8e77' mangled-name='phy_basic_features' visibility='default' filepath='drivers/net/phy/phy_device.c' line='41' column='1' elf-symbol-id='phy_basic_features'/>
       <var-decl name='phy_basic_t1_features' type-id='f05e8e77' mangled-name='phy_basic_t1_features' visibility='default' filepath='drivers/net/phy/phy_device.c' line='44' column='1' elf-symbol-id='phy_basic_t1_features'/>
       <function-decl name='phy_calibrate' mangled-name='phy_calibrate' filepath='drivers/phy/phy-core.c' line='437' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phy_calibrate'>
         <parameter type-id='503ff1ba' name='phy' filepath='drivers/phy/phy-core.c' line='437' column='1'/>
@@ -149925,6 +150477,7 @@
         <parameter type-id='ff47b24b' name='bus' filepath='drivers/net/phy/phy_device.c' line='998' column='1'/>
         <return type-id='7efbcaaf'/>
       </function-decl>
+      <var-decl name='phy_gbit_features' type-id='f05e8e77' mangled-name='phy_gbit_features' visibility='default' filepath='drivers/net/phy/phy_device.c' line='47' column='1' elf-symbol-id='phy_gbit_features'/>
       <var-decl name='phy_gbit_fibre_features' type-id='f05e8e77' mangled-name='phy_gbit_fibre_features' visibility='default' filepath='drivers/net/phy/phy_device.c' line='50' column='1' elf-symbol-id='phy_gbit_fibre_features'/>
       <function-decl name='phy_get' mangled-name='phy_get' filepath='drivers/phy/phy-core.c' line='694' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phy_get'>
         <parameter type-id='fa0b179b' name='dev' filepath='drivers/phy/phy-core.c' line='694' column='1'/>
@@ -150193,67 +150746,67 @@
         <parameter type-id='56f3c6ca' name='pl' filepath='drivers/net/phy/phylink.c' line='938' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='phylink_disconnect_phy' mangled-name='phylink_disconnect_phy' filepath='drivers/net/phy/phylink.c' line='1186' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phylink_disconnect_phy'>
-        <parameter type-id='56f3c6ca' name='pl' filepath='drivers/net/phy/phylink.c' line='1186' column='1'/>
+      <function-decl name='phylink_disconnect_phy' mangled-name='phylink_disconnect_phy' filepath='drivers/net/phy/phylink.c' line='1185' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phylink_disconnect_phy'>
+        <parameter type-id='56f3c6ca' name='pl' filepath='drivers/net/phy/phylink.c' line='1185' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='phylink_ethtool_get_eee' mangled-name='phylink_ethtool_get_eee' filepath='drivers/net/phy/phylink.c' line='1864' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phylink_ethtool_get_eee'>
-        <parameter type-id='56f3c6ca' name='pl' filepath='drivers/net/phy/phylink.c' line='1864' column='1'/>
-        <parameter type-id='eced47f6' name='eee' filepath='drivers/net/phy/phylink.c' line='1864' column='1'/>
+      <function-decl name='phylink_ethtool_get_eee' mangled-name='phylink_ethtool_get_eee' filepath='drivers/net/phy/phylink.c' line='1863' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phylink_ethtool_get_eee'>
+        <parameter type-id='56f3c6ca' name='pl' filepath='drivers/net/phy/phylink.c' line='1863' column='1'/>
+        <parameter type-id='eced47f6' name='eee' filepath='drivers/net/phy/phylink.c' line='1863' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='phylink_ethtool_get_pauseparam' mangled-name='phylink_ethtool_get_pauseparam' filepath='drivers/net/phy/phylink.c' line='1721' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phylink_ethtool_get_pauseparam'>
-        <parameter type-id='56f3c6ca' name='pl' filepath='drivers/net/phy/phylink.c' line='1721' column='1'/>
-        <parameter type-id='ab38066e' name='pause' filepath='drivers/net/phy/phylink.c' line='1722' column='1'/>
+      <function-decl name='phylink_ethtool_get_pauseparam' mangled-name='phylink_ethtool_get_pauseparam' filepath='drivers/net/phy/phylink.c' line='1720' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phylink_ethtool_get_pauseparam'>
+        <parameter type-id='56f3c6ca' name='pl' filepath='drivers/net/phy/phylink.c' line='1720' column='1'/>
+        <parameter type-id='ab38066e' name='pause' filepath='drivers/net/phy/phylink.c' line='1721' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='phylink_ethtool_get_wol' mangled-name='phylink_ethtool_get_wol' filepath='drivers/net/phy/phylink.c' line='1422' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phylink_ethtool_get_wol'>
-        <parameter type-id='56f3c6ca' name='pl' filepath='drivers/net/phy/phylink.c' line='1422' column='1'/>
-        <parameter type-id='fde1bbcb' name='wol' filepath='drivers/net/phy/phylink.c' line='1422' column='1'/>
+      <function-decl name='phylink_ethtool_get_wol' mangled-name='phylink_ethtool_get_wol' filepath='drivers/net/phy/phylink.c' line='1421' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phylink_ethtool_get_wol'>
+        <parameter type-id='56f3c6ca' name='pl' filepath='drivers/net/phy/phylink.c' line='1421' column='1'/>
+        <parameter type-id='fde1bbcb' name='wol' filepath='drivers/net/phy/phylink.c' line='1421' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='phylink_ethtool_ksettings_get' mangled-name='phylink_ethtool_ksettings_get' filepath='drivers/net/phy/phylink.c' line='1489' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phylink_ethtool_ksettings_get'>
-        <parameter type-id='56f3c6ca' name='pl' filepath='drivers/net/phy/phylink.c' line='1489' column='1'/>
-        <parameter type-id='70de91e2' name='kset' filepath='drivers/net/phy/phylink.c' line='1490' column='1'/>
+      <function-decl name='phylink_ethtool_ksettings_get' mangled-name='phylink_ethtool_ksettings_get' filepath='drivers/net/phy/phylink.c' line='1488' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phylink_ethtool_ksettings_get'>
+        <parameter type-id='56f3c6ca' name='pl' filepath='drivers/net/phy/phylink.c' line='1488' column='1'/>
+        <parameter type-id='70de91e2' name='kset' filepath='drivers/net/phy/phylink.c' line='1489' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='phylink_ethtool_ksettings_set' mangled-name='phylink_ethtool_ksettings_set' filepath='drivers/net/phy/phylink.c' line='1539' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phylink_ethtool_ksettings_set'>
-        <parameter type-id='56f3c6ca' name='pl' filepath='drivers/net/phy/phylink.c' line='1539' column='1'/>
-        <parameter type-id='b2c34f11' name='kset' filepath='drivers/net/phy/phylink.c' line='1540' column='1'/>
+      <function-decl name='phylink_ethtool_ksettings_set' mangled-name='phylink_ethtool_ksettings_set' filepath='drivers/net/phy/phylink.c' line='1538' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phylink_ethtool_ksettings_set'>
+        <parameter type-id='56f3c6ca' name='pl' filepath='drivers/net/phy/phylink.c' line='1538' column='1'/>
+        <parameter type-id='b2c34f11' name='kset' filepath='drivers/net/phy/phylink.c' line='1539' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='phylink_ethtool_nway_reset' mangled-name='phylink_ethtool_nway_reset' filepath='drivers/net/phy/phylink.c' line='1702' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phylink_ethtool_nway_reset'>
-        <parameter type-id='56f3c6ca' name='pl' filepath='drivers/net/phy/phylink.c' line='1702' column='1'/>
+      <function-decl name='phylink_ethtool_nway_reset' mangled-name='phylink_ethtool_nway_reset' filepath='drivers/net/phy/phylink.c' line='1701' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phylink_ethtool_nway_reset'>
+        <parameter type-id='56f3c6ca' name='pl' filepath='drivers/net/phy/phylink.c' line='1701' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='phylink_ethtool_set_eee' mangled-name='phylink_ethtool_set_eee' filepath='drivers/net/phy/phylink.c' line='1882' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phylink_ethtool_set_eee'>
-        <parameter type-id='56f3c6ca' name='pl' filepath='drivers/net/phy/phylink.c' line='1882' column='1'/>
-        <parameter type-id='eced47f6' name='eee' filepath='drivers/net/phy/phylink.c' line='1882' column='1'/>
+      <function-decl name='phylink_ethtool_set_eee' mangled-name='phylink_ethtool_set_eee' filepath='drivers/net/phy/phylink.c' line='1881' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phylink_ethtool_set_eee'>
+        <parameter type-id='56f3c6ca' name='pl' filepath='drivers/net/phy/phylink.c' line='1881' column='1'/>
+        <parameter type-id='eced47f6' name='eee' filepath='drivers/net/phy/phylink.c' line='1881' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='phylink_ethtool_set_pauseparam' mangled-name='phylink_ethtool_set_pauseparam' filepath='drivers/net/phy/phylink.c' line='1737' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phylink_ethtool_set_pauseparam'>
-        <parameter type-id='56f3c6ca' name='pl' filepath='drivers/net/phy/phylink.c' line='1737' column='1'/>
-        <parameter type-id='ab38066e' name='pause' filepath='drivers/net/phy/phylink.c' line='1738' column='1'/>
+      <function-decl name='phylink_ethtool_set_pauseparam' mangled-name='phylink_ethtool_set_pauseparam' filepath='drivers/net/phy/phylink.c' line='1736' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phylink_ethtool_set_pauseparam'>
+        <parameter type-id='56f3c6ca' name='pl' filepath='drivers/net/phy/phylink.c' line='1736' column='1'/>
+        <parameter type-id='ab38066e' name='pause' filepath='drivers/net/phy/phylink.c' line='1737' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='phylink_ethtool_set_wol' mangled-name='phylink_ethtool_set_wol' filepath='drivers/net/phy/phylink.c' line='1445' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phylink_ethtool_set_wol'>
-        <parameter type-id='56f3c6ca' name='pl' filepath='drivers/net/phy/phylink.c' line='1445' column='1'/>
-        <parameter type-id='fde1bbcb' name='wol' filepath='drivers/net/phy/phylink.c' line='1445' column='1'/>
+      <function-decl name='phylink_ethtool_set_wol' mangled-name='phylink_ethtool_set_wol' filepath='drivers/net/phy/phylink.c' line='1444' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phylink_ethtool_set_wol'>
+        <parameter type-id='56f3c6ca' name='pl' filepath='drivers/net/phy/phylink.c' line='1444' column='1'/>
+        <parameter type-id='fde1bbcb' name='wol' filepath='drivers/net/phy/phylink.c' line='1444' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='phylink_get_eee_err' mangled-name='phylink_get_eee_err' filepath='drivers/net/phy/phylink.c' line='1828' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phylink_get_eee_err'>
-        <parameter type-id='56f3c6ca' name='pl' filepath='drivers/net/phy/phylink.c' line='1828' column='1'/>
+      <function-decl name='phylink_get_eee_err' mangled-name='phylink_get_eee_err' filepath='drivers/net/phy/phylink.c' line='1827' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phylink_get_eee_err'>
+        <parameter type-id='56f3c6ca' name='pl' filepath='drivers/net/phy/phylink.c' line='1827' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='phylink_mac_change' mangled-name='phylink_mac_change' filepath='drivers/net/phy/phylink.c' line='1214' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phylink_mac_change'>
-        <parameter type-id='56f3c6ca' name='pl' filepath='drivers/net/phy/phylink.c' line='1214' column='1'/>
-        <parameter type-id='b50a4934' name='up' filepath='drivers/net/phy/phylink.c' line='1214' column='1'/>
+      <function-decl name='phylink_mac_change' mangled-name='phylink_mac_change' filepath='drivers/net/phy/phylink.c' line='1213' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phylink_mac_change'>
+        <parameter type-id='56f3c6ca' name='pl' filepath='drivers/net/phy/phylink.c' line='1213' column='1'/>
+        <parameter type-id='b50a4934' name='up' filepath='drivers/net/phy/phylink.c' line='1213' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='phylink_mii_ioctl' mangled-name='phylink_mii_ioctl' filepath='drivers/net/phy/phylink.c' line='2065' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phylink_mii_ioctl'>
-        <parameter type-id='56f3c6ca' name='pl' filepath='drivers/net/phy/phylink.c' line='2065' column='1'/>
-        <parameter type-id='d494b97c' name='ifr' filepath='drivers/net/phy/phylink.c' line='2065' column='1'/>
-        <parameter type-id='95e97e5e' name='cmd' filepath='drivers/net/phy/phylink.c' line='2065' column='1'/>
+      <function-decl name='phylink_mii_ioctl' mangled-name='phylink_mii_ioctl' filepath='drivers/net/phy/phylink.c' line='2064' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phylink_mii_ioctl'>
+        <parameter type-id='56f3c6ca' name='pl' filepath='drivers/net/phy/phylink.c' line='2064' column='1'/>
+        <parameter type-id='d494b97c' name='ifr' filepath='drivers/net/phy/phylink.c' line='2064' column='1'/>
+        <parameter type-id='95e97e5e' name='cmd' filepath='drivers/net/phy/phylink.c' line='2064' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
       <function-decl name='phylink_of_phy_connect' mangled-name='phylink_of_phy_connect' filepath='drivers/net/phy/phylink.c' line='1119' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phylink_of_phy_connect'>
@@ -150262,8 +150815,8 @@
         <parameter type-id='19c2251e' name='flags' filepath='drivers/net/phy/phylink.c' line='1120' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='phylink_resume' mangled-name='phylink_resume' filepath='drivers/net/phy/phylink.c' line='1382' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phylink_resume'>
-        <parameter type-id='56f3c6ca' name='pl' filepath='drivers/net/phy/phylink.c' line='1382' column='1'/>
+      <function-decl name='phylink_resume' mangled-name='phylink_resume' filepath='drivers/net/phy/phylink.c' line='1381' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phylink_resume'>
+        <parameter type-id='56f3c6ca' name='pl' filepath='drivers/net/phy/phylink.c' line='1381' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
       <function-decl name='phylink_set_pcs' mangled-name='phylink_set_pcs' filepath='drivers/net/phy/phylink.c' line='922' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phylink_set_pcs'>
@@ -150275,26 +150828,26 @@
         <parameter type-id='1d2c2b85' name='mask' filepath='drivers/net/phy/phylink.c' line='124' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='phylink_speed_down' mangled-name='phylink_speed_down' filepath='drivers/net/phy/phylink.c' line='2137' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phylink_speed_down'>
-        <parameter type-id='56f3c6ca' name='pl' filepath='drivers/net/phy/phylink.c' line='2137' column='1'/>
-        <parameter type-id='b50a4934' name='sync' filepath='drivers/net/phy/phylink.c' line='2137' column='1'/>
+      <function-decl name='phylink_speed_down' mangled-name='phylink_speed_down' filepath='drivers/net/phy/phylink.c' line='2136' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phylink_speed_down'>
+        <parameter type-id='56f3c6ca' name='pl' filepath='drivers/net/phy/phylink.c' line='2136' column='1'/>
+        <parameter type-id='b50a4934' name='sync' filepath='drivers/net/phy/phylink.c' line='2136' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='phylink_speed_up' mangled-name='phylink_speed_up' filepath='drivers/net/phy/phylink.c' line='2160' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phylink_speed_up'>
-        <parameter type-id='56f3c6ca' name='pl' filepath='drivers/net/phy/phylink.c' line='2160' column='1'/>
+      <function-decl name='phylink_speed_up' mangled-name='phylink_speed_up' filepath='drivers/net/phy/phylink.c' line='2159' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phylink_speed_up'>
+        <parameter type-id='56f3c6ca' name='pl' filepath='drivers/net/phy/phylink.c' line='2159' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='phylink_start' mangled-name='phylink_start' filepath='drivers/net/phy/phylink.c' line='1240' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phylink_start'>
-        <parameter type-id='56f3c6ca' name='pl' filepath='drivers/net/phy/phylink.c' line='1240' column='1'/>
+      <function-decl name='phylink_start' mangled-name='phylink_start' filepath='drivers/net/phy/phylink.c' line='1239' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phylink_start'>
+        <parameter type-id='56f3c6ca' name='pl' filepath='drivers/net/phy/phylink.c' line='1239' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='phylink_stop' mangled-name='phylink_stop' filepath='drivers/net/phy/phylink.c' line='1314' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phylink_stop'>
-        <parameter type-id='56f3c6ca' name='pl' filepath='drivers/net/phy/phylink.c' line='1314' column='1'/>
+      <function-decl name='phylink_stop' mangled-name='phylink_stop' filepath='drivers/net/phy/phylink.c' line='1313' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phylink_stop'>
+        <parameter type-id='56f3c6ca' name='pl' filepath='drivers/net/phy/phylink.c' line='1313' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='phylink_suspend' mangled-name='phylink_suspend' filepath='drivers/net/phy/phylink.c' line='1345' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phylink_suspend'>
-        <parameter type-id='56f3c6ca' name='pl' filepath='drivers/net/phy/phylink.c' line='1345' column='1'/>
-        <parameter type-id='b50a4934' name='mac_wol' filepath='drivers/net/phy/phylink.c' line='1345' column='1'/>
+      <function-decl name='phylink_suspend' mangled-name='phylink_suspend' filepath='drivers/net/phy/phylink.c' line='1344' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phylink_suspend'>
+        <parameter type-id='56f3c6ca' name='pl' filepath='drivers/net/phy/phylink.c' line='1344' column='1'/>
+        <parameter type-id='b50a4934' name='mac_wol' filepath='drivers/net/phy/phylink.c' line='1344' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
       <function-decl name='pick_highest_pushable_task' mangled-name='pick_highest_pushable_task' filepath='kernel/sched/rt.c' line='1793' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pick_highest_pushable_task'>
@@ -150302,8 +150855,8 @@
         <parameter type-id='95e97e5e' name='cpu' filepath='kernel/sched/rt.c' line='1793' column='1'/>
         <return type-id='f23e2572'/>
       </function-decl>
-      <function-decl name='pick_migrate_task' mangled-name='pick_migrate_task' filepath='kernel/sched/core.c' line='9102' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pick_migrate_task'>
-        <parameter type-id='6ed6b432' name='rq' filepath='kernel/sched/core.c' line='9102' column='1'/>
+      <function-decl name='pick_migrate_task' mangled-name='pick_migrate_task' filepath='kernel/sched/core.c' line='9028' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pick_migrate_task'>
+        <parameter type-id='6ed6b432' name='rq' filepath='kernel/sched/core.c' line='9028' column='1'/>
         <return type-id='f23e2572'/>
       </function-decl>
       <function-decl name='pid_nr_ns' mangled-name='pid_nr_ns' filepath='kernel/pid.c' line='473' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pid_nr_ns'>
@@ -151127,10 +151680,10 @@
       <function-decl name='prandom_u32' mangled-name='prandom_u32' filepath='lib/random32.c' line='385' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='prandom_u32'>
         <return type-id='19c2251e'/>
       </function-decl>
-      <function-decl name='preempt_schedule' mangled-name='preempt_schedule' filepath='kernel/sched/core.c' line='6728' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='preempt_schedule'>
+      <function-decl name='preempt_schedule' mangled-name='preempt_schedule' filepath='kernel/sched/core.c' line='6695' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='preempt_schedule'>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='preempt_schedule_notrace' mangled-name='preempt_schedule_notrace' filepath='kernel/sched/core.c' line='6762' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='preempt_schedule_notrace'>
+      <function-decl name='preempt_schedule_notrace' mangled-name='preempt_schedule_notrace' filepath='kernel/sched/core.c' line='6729' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='preempt_schedule_notrace'>
         <return type-id='48b5725f'/>
       </function-decl>
       <function-decl name='prepare_kernel_cred' mangled-name='prepare_kernel_cred' filepath='kernel/cred.c' line='718' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='prepare_kernel_cred'>
@@ -151340,7 +151893,7 @@
         <parameter type-id='f9b06939' name='command' filepath='drivers/input/serio/libps2.c' line='347' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <var-decl name='psi_system' type-id='12878ab3' mangled-name='psi_system' visibility='default' filepath='kernel/sched/psi.c' line='186' column='1' elf-symbol-id='psi_system'/>
+      <var-decl name='psi_system' type-id='12878ab3' mangled-name='psi_system' visibility='default' filepath='kernel/sched/psi.c' line='188' column='1' elf-symbol-id='psi_system'/>
       <function-decl name='pskb_expand_head' mangled-name='pskb_expand_head' filepath='net/core/skbuff.c' line='1711' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pskb_expand_head'>
         <parameter type-id='0fbf3cfd' name='skb' filepath='net/core/skbuff.c' line='1711' column='1'/>
         <parameter type-id='95e97e5e' name='nhead' filepath='net/core/skbuff.c' line='1711' column='1'/>
@@ -151620,13 +152173,13 @@
         <parameter type-id='d504f73d' name='n' filepath='kernel/notifier.c' line='358' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='raw_spin_rq_lock_nested' mangled-name='raw_spin_rq_lock_nested' filepath='kernel/sched/core.c' line='485' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='raw_spin_rq_lock_nested'>
-        <parameter type-id='6ed6b432' name='rq' filepath='kernel/sched/core.c' line='485' column='1'/>
-        <parameter type-id='95e97e5e' name='subclass' filepath='kernel/sched/core.c' line='485' column='1'/>
+      <function-decl name='raw_spin_rq_lock_nested' mangled-name='raw_spin_rq_lock_nested' filepath='kernel/sched/core.c' line='482' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='raw_spin_rq_lock_nested'>
+        <parameter type-id='6ed6b432' name='rq' filepath='kernel/sched/core.c' line='482' column='1'/>
+        <parameter type-id='95e97e5e' name='subclass' filepath='kernel/sched/core.c' line='482' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='raw_spin_rq_unlock' mangled-name='raw_spin_rq_unlock' filepath='kernel/sched/core.c' line='535' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='raw_spin_rq_unlock'>
-        <parameter type-id='6ed6b432' name='rq' filepath='kernel/sched/core.c' line='535' column='1'/>
+      <function-decl name='raw_spin_rq_unlock' mangled-name='raw_spin_rq_unlock' filepath='kernel/sched/core.c' line='532' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='raw_spin_rq_unlock'>
+        <parameter type-id='6ed6b432' name='rq' filepath='kernel/sched/core.c' line='532' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
       <var-decl name='raw_v4_hashinfo' type-id='51ee3086' mangled-name='raw_v4_hashinfo' visibility='default' filepath='net/ipv4/raw.c' line='88' column='1' elf-symbol-id='raw_v4_hashinfo'/>
@@ -151712,7 +152265,7 @@
       <function-decl name='rcu_barrier_tasks' mangled-name='rcu_barrier_tasks' filepath='kernel/rcu/tasks.h' line='587' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_barrier_tasks'>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='rcu_barrier_tasks_trace' mangled-name='rcu_barrier_tasks_trace' filepath='kernel/rcu/tasks.h' line='1262' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_barrier_tasks_trace'>
+      <function-decl name='rcu_barrier_tasks_trace' mangled-name='rcu_barrier_tasks_trace' filepath='kernel/rcu/tasks.h' line='1248' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_barrier_tasks_trace'>
         <return type-id='48b5725f'/>
       </function-decl>
       <function-decl name='rcu_bind_current_to_nocb' mangled-name='rcu_bind_current_to_nocb' filepath='kernel/rcu/tree_nocb.h' line='1303' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_bind_current_to_nocb'>
@@ -151788,8 +152341,8 @@
         <parameter type-id='1d2c2b85' name='gp_seq' filepath='kernel/rcu/tree.c' line='588' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='rcuwait_wake_up' mangled-name='rcuwait_wake_up' filepath='kernel/exit.c' line='233' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcuwait_wake_up'>
-        <parameter type-id='9b25216e' name='w' filepath='kernel/exit.c' line='233' column='1'/>
+      <function-decl name='rcuwait_wake_up' mangled-name='rcuwait_wake_up' filepath='kernel/exit.c' line='280' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcuwait_wake_up'>
+        <parameter type-id='9b25216e' name='w' filepath='kernel/exit.c' line='280' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
       <function-decl name='rdev_get_dev' mangled-name='rdev_get_dev' filepath='drivers/regulator/core.c' line='5746' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rdev_get_dev'>
@@ -151873,9 +152426,9 @@
         <parameter type-id='343c3ae4' name='policy' filepath='drivers/cpufreq/cpufreq.c' line='1146' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='regcache_cache_bypass' mangled-name='regcache_cache_bypass' filepath='drivers/base/regmap/regcache.c' line='538' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='regcache_cache_bypass'>
-        <parameter type-id='29af9a71' name='map' filepath='drivers/base/regmap/regcache.c' line='538' column='1'/>
-        <parameter type-id='b50a4934' name='enable' filepath='drivers/base/regmap/regcache.c' line='538' column='1'/>
+      <function-decl name='regcache_cache_bypass' mangled-name='regcache_cache_bypass' filepath='drivers/base/regmap/regcache.c' line='539' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='regcache_cache_bypass'>
+        <parameter type-id='29af9a71' name='map' filepath='drivers/base/regmap/regcache.c' line='539' column='1'/>
+        <parameter type-id='b50a4934' name='enable' filepath='drivers/base/regmap/regcache.c' line='539' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
       <function-decl name='regcache_cache_only' mangled-name='regcache_cache_only' filepath='drivers/base/regmap/regcache.c' line='495' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='regcache_cache_only'>
@@ -151889,8 +152442,8 @@
         <parameter type-id='f0981eeb' name='max' filepath='drivers/base/regmap/regcache.c' line='464' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='regcache_mark_dirty' mangled-name='regcache_mark_dirty' filepath='drivers/base/regmap/regcache.c' line='518' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='regcache_mark_dirty'>
-        <parameter type-id='29af9a71' name='map' filepath='drivers/base/regmap/regcache.c' line='518' column='1'/>
+      <function-decl name='regcache_mark_dirty' mangled-name='regcache_mark_dirty' filepath='drivers/base/regmap/regcache.c' line='519' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='regcache_mark_dirty'>
+        <parameter type-id='29af9a71' name='map' filepath='drivers/base/regmap/regcache.c' line='519' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
       <function-decl name='regcache_sync' mangled-name='regcache_sync' filepath='drivers/base/regmap/regcache.c' line='339' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='regcache_sync'>
@@ -152024,13 +152577,13 @@
         <parameter type-id='cbd24a98' name='ops' filepath='drivers/base/syscore.c' line='22' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='register_sysctl' mangled-name='register_sysctl' filepath='fs/proc/proc_sysctl.c' line='1382' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='register_sysctl'>
-        <parameter type-id='80f4b756' name='path' filepath='fs/proc/proc_sysctl.c' line='1382' column='1'/>
-        <parameter type-id='631dc3c1' name='table' filepath='fs/proc/proc_sysctl.c' line='1382' column='1'/>
+      <function-decl name='register_sysctl' mangled-name='register_sysctl' filepath='fs/proc/proc_sysctl.c' line='1383' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='register_sysctl'>
+        <parameter type-id='80f4b756' name='path' filepath='fs/proc/proc_sysctl.c' line='1383' column='1'/>
+        <parameter type-id='631dc3c1' name='table' filepath='fs/proc/proc_sysctl.c' line='1383' column='1'/>
         <return type-id='11b101bb'/>
       </function-decl>
-      <function-decl name='register_sysctl_table' mangled-name='register_sysctl_table' filepath='fs/proc/proc_sysctl.c' line='1594' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='register_sysctl_table'>
-        <parameter type-id='631dc3c1' name='table' filepath='fs/proc/proc_sysctl.c' line='1594' column='1'/>
+      <function-decl name='register_sysctl_table' mangled-name='register_sysctl_table' filepath='fs/proc/proc_sysctl.c' line='1627' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='register_sysctl_table'>
+        <parameter type-id='631dc3c1' name='table' filepath='fs/proc/proc_sysctl.c' line='1627' column='1'/>
         <return type-id='11b101bb'/>
       </function-decl>
       <function-decl name='register_tcf_proto_ops' mangled-name='register_tcf_proto_ops' filepath='net/sched/cls_api.c' line='160' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='register_tcf_proto_ops'>
@@ -152486,12 +153039,12 @@
         <parameter type-id='f772df6d' name='sk' filepath='net/core/sock.c' line='3234' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='remap_pfn_range' mangled-name='remap_pfn_range' filepath='mm/memory.c' line='2498' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='remap_pfn_range'>
-        <parameter type-id='2ae08426' name='vma' filepath='mm/memory.c' line='2498' column='1'/>
-        <parameter type-id='7359adad' name='addr' filepath='mm/memory.c' line='2498' column='1'/>
-        <parameter type-id='7359adad' name='pfn' filepath='mm/memory.c' line='2499' column='1'/>
-        <parameter type-id='7359adad' name='size' filepath='mm/memory.c' line='2499' column='1'/>
-        <parameter type-id='2e2dcbd3' name='prot' filepath='mm/memory.c' line='2499' column='1'/>
+      <function-decl name='remap_pfn_range' mangled-name='remap_pfn_range' filepath='mm/memory.c' line='2511' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='remap_pfn_range'>
+        <parameter type-id='2ae08426' name='vma' filepath='mm/memory.c' line='2511' column='1'/>
+        <parameter type-id='7359adad' name='addr' filepath='mm/memory.c' line='2511' column='1'/>
+        <parameter type-id='7359adad' name='pfn' filepath='mm/memory.c' line='2512' column='1'/>
+        <parameter type-id='7359adad' name='size' filepath='mm/memory.c' line='2512' column='1'/>
+        <parameter type-id='2e2dcbd3' name='prot' filepath='mm/memory.c' line='2512' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
       <function-decl name='remap_vmalloc_range' mangled-name='remap_vmalloc_range' filepath='mm/vmalloc.c' line='3529' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='remap_vmalloc_range'>
@@ -152524,11 +153077,11 @@
         <parameter type-id='db9d03e3' name='wq_entry' filepath='kernel/sched/wait.c' line='52' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='report_iommu_fault' mangled-name='report_iommu_fault' filepath='drivers/iommu/iommu.c' line='2755' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='report_iommu_fault'>
-        <parameter type-id='bff05edb' name='domain' filepath='drivers/iommu/iommu.c' line='2755' column='1'/>
-        <parameter type-id='fa0b179b' name='dev' filepath='drivers/iommu/iommu.c' line='2755' column='1'/>
-        <parameter type-id='7359adad' name='iova' filepath='drivers/iommu/iommu.c' line='2756' column='1'/>
-        <parameter type-id='95e97e5e' name='flags' filepath='drivers/iommu/iommu.c' line='2756' column='1'/>
+      <function-decl name='report_iommu_fault' mangled-name='report_iommu_fault' filepath='drivers/iommu/iommu.c' line='2771' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='report_iommu_fault'>
+        <parameter type-id='bff05edb' name='domain' filepath='drivers/iommu/iommu.c' line='2771' column='1'/>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/iommu/iommu.c' line='2771' column='1'/>
+        <parameter type-id='7359adad' name='iova' filepath='drivers/iommu/iommu.c' line='2772' column='1'/>
+        <parameter type-id='95e97e5e' name='flags' filepath='drivers/iommu/iommu.c' line='2772' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
       <function-decl name='request_any_context_irq' mangled-name='request_any_context_irq' filepath='kernel/irq/manage.c' line='2255' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='request_any_context_irq'>
@@ -152585,8 +153138,8 @@
         <parameter type-id='eaa32e2f' name='dev_id' filepath='kernel/irq/manage.c' line='2149' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='resched_curr' mangled-name='resched_curr' filepath='kernel/sched/core.c' line='988' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='resched_curr'>
-        <parameter type-id='6ed6b432' name='rq' filepath='kernel/sched/core.c' line='988' column='1'/>
+      <function-decl name='resched_curr' mangled-name='resched_curr' filepath='kernel/sched/core.c' line='985' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='resched_curr'>
+        <parameter type-id='6ed6b432' name='rq' filepath='kernel/sched/core.c' line='985' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
       <var-decl name='reservation_ww_class' type-id='f0dc3c34' mangled-name='reservation_ww_class' visibility='default' filepath='drivers/dma-buf/dma-resv.c' line='53' column='1' elf-symbol-id='reservation_ww_class'/>
@@ -152708,7 +153261,7 @@
       <function-decl name='rng_is_initialized' mangled-name='rng_is_initialized' filepath='drivers/char/random.c' line='110' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rng_is_initialized'>
         <return type-id='b50a4934'/>
       </function-decl>
-      <var-decl name='root_task_group' type-id='2d863538' mangled-name='root_task_group' visibility='default' filepath='kernel/sched/core.c' line='9597' column='1' elf-symbol-id='root_task_group'/>
+      <var-decl name='root_task_group' type-id='2d863538' mangled-name='root_task_group' visibility='default' filepath='kernel/sched/core.c' line='9523' column='1' elf-symbol-id='root_task_group'/>
       <function-decl name='round_jiffies' mangled-name='round_jiffies' filepath='kernel/time/timer.c' line='390' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='round_jiffies'>
         <parameter type-id='7359adad' name='j' filepath='kernel/time/timer.c' line='390' column='1'/>
         <return type-id='7359adad'/>
@@ -152773,6 +153326,11 @@
         <parameter type-id='cc769659' name='chinfo' filepath='drivers/rpmsg/rpmsg_core.c' line='57' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
+      <function-decl name='rpmsg_rx_done' mangled-name='rpmsg_rx_done' filepath='drivers/rpmsg/rpmsg_core.c' line='376' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rpmsg_rx_done'>
+        <parameter type-id='feb59272' name='ept' filepath='drivers/rpmsg/rpmsg_core.c' line='376' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='drivers/rpmsg/rpmsg_core.c' line='376' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
       <function-decl name='rpmsg_send' mangled-name='rpmsg_send' filepath='drivers/rpmsg/rpmsg_core.c' line='154' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rpmsg_send'>
         <parameter type-id='feb59272' name='ept' filepath='drivers/rpmsg/rpmsg_core.c' line='154' column='1'/>
         <parameter type-id='eaa32e2f' name='data' filepath='drivers/rpmsg/rpmsg_core.c' line='154' column='1'/>
@@ -152803,8 +153361,8 @@
         <parameter type-id='cc769659' name='chinfo' filepath='drivers/rpmsg/rpmsg_core.c' line='659' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='rproc_add' mangled-name='rproc_add' filepath='drivers/remoteproc/remoteproc_core.c' line='2372' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rproc_add'>
-        <parameter type-id='5771c601' name='rproc' filepath='drivers/remoteproc/remoteproc_core.c' line='2372' column='1'/>
+      <function-decl name='rproc_add' mangled-name='rproc_add' filepath='drivers/remoteproc/remoteproc_core.c' line='2378' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rproc_add'>
+        <parameter type-id='5771c601' name='rproc' filepath='drivers/remoteproc/remoteproc_core.c' line='2378' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
       <function-decl name='rproc_add_carveout' mangled-name='rproc_add_carveout' filepath='drivers/remoteproc/remoteproc_core.c' line='1004' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rproc_add_carveout'>
@@ -152812,21 +153370,21 @@
         <parameter type-id='abf87da2' name='mem' filepath='drivers/remoteproc/remoteproc_core.c' line='1004' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='rproc_add_subdev' mangled-name='rproc_add_subdev' filepath='drivers/remoteproc/remoteproc_core.c' line='2735' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rproc_add_subdev'>
-        <parameter type-id='5771c601' name='rproc' filepath='drivers/remoteproc/remoteproc_core.c' line='2735' column='1'/>
-        <parameter type-id='3591079f' name='subdev' filepath='drivers/remoteproc/remoteproc_core.c' line='2735' column='1'/>
+      <function-decl name='rproc_add_subdev' mangled-name='rproc_add_subdev' filepath='drivers/remoteproc/remoteproc_core.c' line='2741' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rproc_add_subdev'>
+        <parameter type-id='5771c601' name='rproc' filepath='drivers/remoteproc/remoteproc_core.c' line='2741' column='1'/>
+        <parameter type-id='3591079f' name='subdev' filepath='drivers/remoteproc/remoteproc_core.c' line='2741' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='rproc_alloc' mangled-name='rproc_alloc' filepath='drivers/remoteproc/remoteproc_core.c' line='2546' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rproc_alloc'>
-        <parameter type-id='fa0b179b' name='dev' filepath='drivers/remoteproc/remoteproc_core.c' line='2546' column='1'/>
-        <parameter type-id='80f4b756' name='name' filepath='drivers/remoteproc/remoteproc_core.c' line='2546' column='1'/>
-        <parameter type-id='48daa4cd' name='ops' filepath='drivers/remoteproc/remoteproc_core.c' line='2547' column='1'/>
-        <parameter type-id='80f4b756' name='firmware' filepath='drivers/remoteproc/remoteproc_core.c' line='2548' column='1'/>
-        <parameter type-id='95e97e5e' name='len' filepath='drivers/remoteproc/remoteproc_core.c' line='2548' column='1'/>
+      <function-decl name='rproc_alloc' mangled-name='rproc_alloc' filepath='drivers/remoteproc/remoteproc_core.c' line='2552' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rproc_alloc'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/remoteproc/remoteproc_core.c' line='2552' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='drivers/remoteproc/remoteproc_core.c' line='2552' column='1'/>
+        <parameter type-id='48daa4cd' name='ops' filepath='drivers/remoteproc/remoteproc_core.c' line='2553' column='1'/>
+        <parameter type-id='80f4b756' name='firmware' filepath='drivers/remoteproc/remoteproc_core.c' line='2554' column='1'/>
+        <parameter type-id='95e97e5e' name='len' filepath='drivers/remoteproc/remoteproc_core.c' line='2554' column='1'/>
         <return type-id='5771c601'/>
       </function-decl>
-      <function-decl name='rproc_boot' mangled-name='rproc_boot' filepath='drivers/remoteproc/remoteproc_core.c' line='2025' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rproc_boot'>
-        <parameter type-id='5771c601' name='rproc' filepath='drivers/remoteproc/remoteproc_core.c' line='2025' column='1'/>
+      <function-decl name='rproc_boot' mangled-name='rproc_boot' filepath='drivers/remoteproc/remoteproc_core.c' line='2031' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rproc_boot'>
+        <parameter type-id='5771c601' name='rproc' filepath='drivers/remoteproc/remoteproc_core.c' line='2031' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
       <function-decl name='rproc_coredump' mangled-name='rproc_coredump' filepath='drivers/remoteproc/remoteproc_coredump.c' line='235' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rproc_coredump'>
@@ -152868,8 +153426,8 @@
         <parameter type-id='d8e6b335' name='is_iomem' filepath='drivers/remoteproc/remoteproc_core.c' line='196' column='1'/>
         <return type-id='eaa32e2f'/>
       </function-decl>
-      <function-decl name='rproc_del' mangled-name='rproc_del' filepath='drivers/remoteproc/remoteproc_core.c' line='2659' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rproc_del'>
-        <parameter type-id='5771c601' name='rproc' filepath='drivers/remoteproc/remoteproc_core.c' line='2659' column='1'/>
+      <function-decl name='rproc_del' mangled-name='rproc_del' filepath='drivers/remoteproc/remoteproc_core.c' line='2665' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rproc_del'>
+        <parameter type-id='5771c601' name='rproc' filepath='drivers/remoteproc/remoteproc_core.c' line='2665' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
       <function-decl name='rproc_del_carveout' mangled-name='rproc_del_carveout' filepath='drivers/remoteproc/remoteproc_core.c' line='1017' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rproc_del_carveout'>
@@ -152902,16 +153460,16 @@
         <parameter type-id='fce0537d' name='fw' filepath='drivers/remoteproc/remoteproc_elf_loader.c' line='37' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='rproc_free' mangled-name='rproc_free' filepath='drivers/remoteproc/remoteproc_core.c' line='2622' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rproc_free'>
-        <parameter type-id='5771c601' name='rproc' filepath='drivers/remoteproc/remoteproc_core.c' line='2622' column='1'/>
+      <function-decl name='rproc_free' mangled-name='rproc_free' filepath='drivers/remoteproc/remoteproc_core.c' line='2628' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rproc_free'>
+        <parameter type-id='5771c601' name='rproc' filepath='drivers/remoteproc/remoteproc_core.c' line='2628' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='rproc_get_by_child' mangled-name='rproc_get_by_child' filepath='drivers/remoteproc/remoteproc_core.c' line='2758' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rproc_get_by_child'>
-        <parameter type-id='fa0b179b' name='dev' filepath='drivers/remoteproc/remoteproc_core.c' line='2758' column='1'/>
+      <function-decl name='rproc_get_by_child' mangled-name='rproc_get_by_child' filepath='drivers/remoteproc/remoteproc_core.c' line='2764' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rproc_get_by_child'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/remoteproc/remoteproc_core.c' line='2764' column='1'/>
         <return type-id='5771c601'/>
       </function-decl>
-      <function-decl name='rproc_get_by_phandle' mangled-name='rproc_get_by_phandle' filepath='drivers/remoteproc/remoteproc_core.c' line='2215' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rproc_get_by_phandle'>
-        <parameter type-id='6e394fba' name='phandle' filepath='drivers/remoteproc/remoteproc_core.c' line='2215' column='1'/>
+      <function-decl name='rproc_get_by_phandle' mangled-name='rproc_get_by_phandle' filepath='drivers/remoteproc/remoteproc_core.c' line='2221' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rproc_get_by_phandle'>
+        <parameter type-id='6e394fba' name='phandle' filepath='drivers/remoteproc/remoteproc_core.c' line='2221' column='1'/>
         <return type-id='5771c601'/>
       </function-decl>
       <function-decl name='rproc_mem_entry_free' mangled-name='rproc_mem_entry_free' filepath='drivers/remoteproc/remoteproc_core.c' line='1085' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rproc_mem_entry_free'>
@@ -152945,22 +153503,22 @@
         <parameter is-variadic='yes'/>
         <return type-id='abf87da2'/>
       </function-decl>
-      <function-decl name='rproc_put' mangled-name='rproc_put' filepath='drivers/remoteproc/remoteproc_core.c' line='2637' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rproc_put'>
-        <parameter type-id='5771c601' name='rproc' filepath='drivers/remoteproc/remoteproc_core.c' line='2637' column='1'/>
+      <function-decl name='rproc_put' mangled-name='rproc_put' filepath='drivers/remoteproc/remoteproc_core.c' line='2643' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rproc_put'>
+        <parameter type-id='5771c601' name='rproc' filepath='drivers/remoteproc/remoteproc_core.c' line='2643' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='rproc_remove_subdev' mangled-name='rproc_remove_subdev' filepath='drivers/remoteproc/remoteproc_core.c' line='2746' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rproc_remove_subdev'>
-        <parameter type-id='5771c601' name='rproc' filepath='drivers/remoteproc/remoteproc_core.c' line='2746' column='1'/>
-        <parameter type-id='3591079f' name='subdev' filepath='drivers/remoteproc/remoteproc_core.c' line='2746' column='1'/>
+      <function-decl name='rproc_remove_subdev' mangled-name='rproc_remove_subdev' filepath='drivers/remoteproc/remoteproc_core.c' line='2752' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rproc_remove_subdev'>
+        <parameter type-id='5771c601' name='rproc' filepath='drivers/remoteproc/remoteproc_core.c' line='2752' column='1'/>
+        <parameter type-id='3591079f' name='subdev' filepath='drivers/remoteproc/remoteproc_core.c' line='2752' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='rproc_report_crash' mangled-name='rproc_report_crash' filepath='drivers/remoteproc/remoteproc_core.c' line='2780' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rproc_report_crash'>
-        <parameter type-id='5771c601' name='rproc' filepath='drivers/remoteproc/remoteproc_core.c' line='2780' column='1'/>
-        <parameter type-id='25751b8f' name='type' filepath='drivers/remoteproc/remoteproc_core.c' line='2780' column='1'/>
+      <function-decl name='rproc_report_crash' mangled-name='rproc_report_crash' filepath='drivers/remoteproc/remoteproc_core.c' line='2786' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rproc_report_crash'>
+        <parameter type-id='5771c601' name='rproc' filepath='drivers/remoteproc/remoteproc_core.c' line='2786' column='1'/>
+        <parameter type-id='25751b8f' name='type' filepath='drivers/remoteproc/remoteproc_core.c' line='2786' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='rproc_shutdown' mangled-name='rproc_shutdown' filepath='drivers/remoteproc/remoteproc_core.c' line='2103' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rproc_shutdown'>
-        <parameter type-id='5771c601' name='rproc' filepath='drivers/remoteproc/remoteproc_core.c' line='2103' column='1'/>
+      <function-decl name='rproc_shutdown' mangled-name='rproc_shutdown' filepath='drivers/remoteproc/remoteproc_core.c' line='2109' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rproc_shutdown'>
+        <parameter type-id='5771c601' name='rproc' filepath='drivers/remoteproc/remoteproc_core.c' line='2109' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
       <function-decl name='rproc_vq_interrupt' mangled-name='rproc_vq_interrupt' filepath='drivers/remoteproc/remoteproc_virtio.c' line='51' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rproc_vq_interrupt'>
@@ -152969,8 +153527,8 @@
         <return type-id='4bdecfd7'/>
       </function-decl>
       <var-decl name='rps_needed' type-id='237c0d27' mangled-name='rps_needed' visibility='default' filepath='net/core/dev.c' line='4367' column='1' elf-symbol-id='rps_needed'/>
-      <function-decl name='rq_flush_dcache_pages' mangled-name='rq_flush_dcache_pages' filepath='block/blk-core.c' line='1507' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rq_flush_dcache_pages'>
-        <parameter type-id='3dad1a48' name='rq' filepath='block/blk-core.c' line='1507' column='1'/>
+      <function-decl name='rq_flush_dcache_pages' mangled-name='rq_flush_dcache_pages' filepath='block/blk-core.c' line='1503' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rq_flush_dcache_pages'>
+        <parameter type-id='3dad1a48' name='rq' filepath='block/blk-core.c' line='1503' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
       <function-decl name='rt6_lookup' mangled-name='rt6_lookup' filepath='net/ipv6/route.c' line='1262' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rt6_lookup'>
@@ -153175,43 +153733,43 @@
       </function-decl>
       <var-decl name='sched_feat_keys' type-id='98c5d52c' mangled-name='sched_feat_keys' visibility='default' filepath='kernel/sched/debug.c' line='80' column='1' elf-symbol-id='sched_feat_keys'/>
       <var-decl name='sched_feat_names' type-id='3a06f3b2' mangled-name='sched_feat_names' visibility='default' filepath='kernel/sched/debug.c' line='51' column='1' elf-symbol-id='sched_feat_names'/>
-      <function-decl name='sched_set_fifo' mangled-name='sched_set_fifo' filepath='kernel/sched/core.c' line='7824' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sched_set_fifo'>
-        <parameter type-id='f23e2572' name='p' filepath='kernel/sched/core.c' line='7824' column='1'/>
+      <function-decl name='sched_set_fifo' mangled-name='sched_set_fifo' filepath='kernel/sched/core.c' line='7791' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sched_set_fifo'>
+        <parameter type-id='f23e2572' name='p' filepath='kernel/sched/core.c' line='7791' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='sched_set_fifo_low' mangled-name='sched_set_fifo_low' filepath='kernel/sched/core.c' line='7834' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sched_set_fifo_low'>
-        <parameter type-id='f23e2572' name='p' filepath='kernel/sched/core.c' line='7834' column='1'/>
+      <function-decl name='sched_set_fifo_low' mangled-name='sched_set_fifo_low' filepath='kernel/sched/core.c' line='7801' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sched_set_fifo_low'>
+        <parameter type-id='f23e2572' name='p' filepath='kernel/sched/core.c' line='7801' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='sched_set_normal' mangled-name='sched_set_normal' filepath='kernel/sched/core.c' line='7841' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sched_set_normal'>
-        <parameter type-id='f23e2572' name='p' filepath='kernel/sched/core.c' line='7841' column='1'/>
-        <parameter type-id='95e97e5e' name='nice' filepath='kernel/sched/core.c' line='7841' column='1'/>
+      <function-decl name='sched_set_normal' mangled-name='sched_set_normal' filepath='kernel/sched/core.c' line='7808' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sched_set_normal'>
+        <parameter type-id='f23e2572' name='p' filepath='kernel/sched/core.c' line='7808' column='1'/>
+        <parameter type-id='95e97e5e' name='nice' filepath='kernel/sched/core.c' line='7808' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='sched_setattr' mangled-name='sched_setattr' filepath='kernel/sched/core.c' line='7774' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sched_setattr'>
-        <parameter type-id='f23e2572' name='p' filepath='kernel/sched/core.c' line='7774' column='1'/>
-        <parameter type-id='8abbb6c3' name='attr' filepath='kernel/sched/core.c' line='7774' column='1'/>
+      <function-decl name='sched_setattr' mangled-name='sched_setattr' filepath='kernel/sched/core.c' line='7741' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sched_setattr'>
+        <parameter type-id='f23e2572' name='p' filepath='kernel/sched/core.c' line='7741' column='1'/>
+        <parameter type-id='8abbb6c3' name='attr' filepath='kernel/sched/core.c' line='7741' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='sched_setattr_nocheck' mangled-name='sched_setattr_nocheck' filepath='kernel/sched/core.c' line='7780' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sched_setattr_nocheck'>
-        <parameter type-id='f23e2572' name='p' filepath='kernel/sched/core.c' line='7780' column='1'/>
-        <parameter type-id='8abbb6c3' name='attr' filepath='kernel/sched/core.c' line='7780' column='1'/>
+      <function-decl name='sched_setattr_nocheck' mangled-name='sched_setattr_nocheck' filepath='kernel/sched/core.c' line='7747' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sched_setattr_nocheck'>
+        <parameter type-id='f23e2572' name='p' filepath='kernel/sched/core.c' line='7747' column='1'/>
+        <parameter type-id='8abbb6c3' name='attr' filepath='kernel/sched/core.c' line='7747' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='sched_setscheduler' mangled-name='sched_setscheduler' filepath='kernel/sched/core.c' line='7767' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sched_setscheduler'>
-        <parameter type-id='f23e2572' name='p' filepath='kernel/sched/core.c' line='7767' column='1'/>
-        <parameter type-id='95e97e5e' name='policy' filepath='kernel/sched/core.c' line='7767' column='1'/>
-        <parameter type-id='36fca399' name='param' filepath='kernel/sched/core.c' line='7768' column='1'/>
+      <function-decl name='sched_setscheduler' mangled-name='sched_setscheduler' filepath='kernel/sched/core.c' line='7734' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sched_setscheduler'>
+        <parameter type-id='f23e2572' name='p' filepath='kernel/sched/core.c' line='7734' column='1'/>
+        <parameter type-id='95e97e5e' name='policy' filepath='kernel/sched/core.c' line='7734' column='1'/>
+        <parameter type-id='36fca399' name='param' filepath='kernel/sched/core.c' line='7735' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='sched_setscheduler_nocheck' mangled-name='sched_setscheduler_nocheck' filepath='kernel/sched/core.c' line='7799' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sched_setscheduler_nocheck'>
-        <parameter type-id='f23e2572' name='p' filepath='kernel/sched/core.c' line='7799' column='1'/>
-        <parameter type-id='95e97e5e' name='policy' filepath='kernel/sched/core.c' line='7799' column='1'/>
-        <parameter type-id='36fca399' name='param' filepath='kernel/sched/core.c' line='7800' column='1'/>
+      <function-decl name='sched_setscheduler_nocheck' mangled-name='sched_setscheduler_nocheck' filepath='kernel/sched/core.c' line='7766' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sched_setscheduler_nocheck'>
+        <parameter type-id='f23e2572' name='p' filepath='kernel/sched/core.c' line='7766' column='1'/>
+        <parameter type-id='95e97e5e' name='policy' filepath='kernel/sched/core.c' line='7766' column='1'/>
+        <parameter type-id='36fca399' name='param' filepath='kernel/sched/core.c' line='7767' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='sched_show_task' mangled-name='sched_show_task' filepath='kernel/sched/core.c' line='8811' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sched_show_task'>
-        <parameter type-id='f23e2572' name='p' filepath='kernel/sched/core.c' line='8811' column='1'/>
+      <function-decl name='sched_show_task' mangled-name='sched_show_task' filepath='kernel/sched/core.c' line='8743' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sched_show_task'>
+        <parameter type-id='f23e2572' name='p' filepath='kernel/sched/core.c' line='8743' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
       <function-decl name='sched_trace_cfs_rq_avg' mangled-name='sched_trace_cfs_rq_avg' filepath='kernel/sched/fair.c' line='12054' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sched_trace_cfs_rq_avg'>
@@ -153248,8 +153806,8 @@
         <parameter type-id='6ed6b432' name='rq' filepath='kernel/sched/fair.c' line='12114' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <var-decl name='sched_uclamp_used' type-id='237c0d27' mangled-name='sched_uclamp_used' visibility='default' filepath='kernel/sched/core.c' line='1318' column='1' elf-symbol-id='sched_uclamp_used'/>
-      <function-decl name='schedule' mangled-name='schedule' filepath='kernel/sched/core.c' line='6612' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='schedule'>
+      <var-decl name='sched_uclamp_used' type-id='237c0d27' mangled-name='sched_uclamp_used' visibility='default' filepath='kernel/sched/core.c' line='1315' column='1' elf-symbol-id='sched_uclamp_used'/>
+      <function-decl name='schedule' mangled-name='schedule' filepath='kernel/sched/core.c' line='6579' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='schedule'>
         <return type-id='48b5725f'/>
       </function-decl>
       <function-decl name='schedule_hrtimeout' mangled-name='schedule_hrtimeout' filepath='kernel/time/hrtimer.c' line='2382' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='schedule_hrtimeout'>
@@ -153373,8 +153931,8 @@
         <parameter type-id='075d8b9f' name='ses' filepath='drivers/scsi/scsi_error.c' line='1060' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='scsi_get_host_dev' mangled-name='scsi_get_host_dev' filepath='drivers/scsi/scsi_scan.c' line='1972' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='scsi_get_host_dev'>
-        <parameter type-id='a970a64c' name='shost' filepath='drivers/scsi/scsi_scan.c' line='1972' column='1'/>
+      <function-decl name='scsi_get_host_dev' mangled-name='scsi_get_host_dev' filepath='drivers/scsi/scsi_scan.c' line='1971' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='scsi_get_host_dev'>
+        <parameter type-id='a970a64c' name='shost' filepath='drivers/scsi/scsi_scan.c' line='1971' column='1'/>
         <return type-id='eb572b74'/>
       </function-decl>
       <function-decl name='scsi_host_alloc' mangled-name='scsi_host_alloc' filepath='drivers/scsi/hosts.c' line='377' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='scsi_host_alloc'>
@@ -153424,6 +153982,10 @@
         <parameter type-id='d6a0d460' name='sshdr' filepath='drivers/scsi/scsi_logging.c' line='360' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
+      <function-decl name='scsi_register_driver' mangled-name='scsi_register_driver' filepath='drivers/scsi/scsi_sysfs.c' line='1591' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='scsi_register_driver'>
+        <parameter type-id='00c7b870' name='drv' filepath='drivers/scsi/scsi_sysfs.c' line='1591' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
       <function-decl name='scsi_register_interface' mangled-name='scsi_register_interface' filepath='drivers/scsi/scsi_sysfs.c' line='1599' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='scsi_register_interface'>
         <parameter type-id='ec167ceb' name='intf' filepath='drivers/scsi/scsi_sysfs.c' line='1599' column='1'/>
         <return type-id='95e97e5e'/>
@@ -153447,8 +154009,8 @@
         <parameter type-id='95e97e5e' name='target' filepath='drivers/scsi/scsi_error.c' line='2351' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='scsi_scan_host' mangled-name='scsi_scan_host' filepath='drivers/scsi/scsi_scan.c' line='1912' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='scsi_scan_host'>
-        <parameter type-id='a970a64c' name='shost' filepath='drivers/scsi/scsi_scan.c' line='1912' column='1'/>
+      <function-decl name='scsi_scan_host' mangled-name='scsi_scan_host' filepath='drivers/scsi/scsi_scan.c' line='1911' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='scsi_scan_host'>
+        <parameter type-id='a970a64c' name='shost' filepath='drivers/scsi/scsi_scan.c' line='1911' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
       <function-decl name='scsi_schedule_eh' mangled-name='scsi_schedule_eh' filepath='drivers/scsi/scsi_error.c' line='84' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='scsi_schedule_eh'>
@@ -153484,6 +154046,14 @@
         <parameter type-id='2661e0d9' name='host' filepath='drivers/mmc/host/sdhci.c' line='4859' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
+      <function-decl name='sdhci_adma_write_desc' mangled-name='sdhci_adma_write_desc' filepath='drivers/mmc/host/sdhci.c' line='689' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sdhci_adma_write_desc'>
+        <parameter type-id='2661e0d9' name='host' filepath='drivers/mmc/host/sdhci.c' line='689' column='1'/>
+        <parameter type-id='63e171df' name='desc' filepath='drivers/mmc/host/sdhci.c' line='689' column='1'/>
+        <parameter type-id='cf29c9b3' name='addr' filepath='drivers/mmc/host/sdhci.c' line='690' column='1'/>
+        <parameter type-id='95e97e5e' name='len' filepath='drivers/mmc/host/sdhci.c' line='690' column='1'/>
+        <parameter type-id='f0981eeb' name='cmd' filepath='drivers/mmc/host/sdhci.c' line='690' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
       <function-decl name='sdhci_cleanup_host' mangled-name='sdhci_cleanup_host' filepath='drivers/mmc/host/sdhci.c' line='4770' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sdhci_cleanup_host'>
         <parameter type-id='2661e0d9' name='host' filepath='drivers/mmc/host/sdhci.c' line='4770' column='1'/>
         <return type-id='48b5725f'/>
@@ -153580,6 +154150,11 @@
         <parameter type-id='8efea9e5' name='vdd' filepath='drivers/mmc/host/sdhci.c' line='2042' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
+      <function-decl name='sdhci_set_uhs_signaling' mangled-name='sdhci_set_uhs_signaling' filepath='drivers/mmc/host/sdhci.c' line='2242' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sdhci_set_uhs_signaling'>
+        <parameter type-id='2661e0d9' name='host' filepath='drivers/mmc/host/sdhci.c' line='2242' column='1'/>
+        <parameter type-id='f0981eeb' name='timing' filepath='drivers/mmc/host/sdhci.c' line='2242' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
       <function-decl name='sdhci_setup_host' mangled-name='sdhci_setup_host' filepath='drivers/mmc/host/sdhci.c' line='4221' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sdhci_setup_host'>
         <parameter type-id='2661e0d9' name='host' filepath='drivers/mmc/host/sdhci.c' line='4221' column='1'/>
         <return type-id='95e97e5e'/>
@@ -153766,9 +154341,9 @@
         <parameter type-id='b4888646' name='flic' filepath='security/security.c' line='2292' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='select_fallback_rq' mangled-name='select_fallback_rq' filepath='kernel/sched/core.c' line='3453' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='select_fallback_rq'>
-        <parameter type-id='95e97e5e' name='cpu' filepath='kernel/sched/core.c' line='3453' column='1'/>
-        <parameter type-id='f23e2572' name='p' filepath='kernel/sched/core.c' line='3453' column='1'/>
+      <function-decl name='select_fallback_rq' mangled-name='select_fallback_rq' filepath='kernel/sched/core.c' line='3420' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='select_fallback_rq'>
+        <parameter type-id='95e97e5e' name='cpu' filepath='kernel/sched/core.c' line='3420' column='1'/>
+        <parameter type-id='f23e2572' name='p' filepath='kernel/sched/core.c' line='3420' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
       <function-decl name='send_sig' mangled-name='send_sig' filepath='kernel/signal.c' line='1655' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='send_sig'>
@@ -154019,9 +154594,9 @@
         <parameter type-id='a42536cd' name='size' filepath='block/genhd.c' line='69' column='1'/>
         <return type-id='b50a4934'/>
       </function-decl>
-      <function-decl name='set_cpus_allowed_ptr' mangled-name='set_cpus_allowed_ptr' filepath='kernel/sched/core.c' line='2996' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='set_cpus_allowed_ptr'>
-        <parameter type-id='f23e2572' name='p' filepath='kernel/sched/core.c' line='2996' column='1'/>
-        <parameter type-id='5f8a1ac4' name='new_mask' filepath='kernel/sched/core.c' line='2996' column='1'/>
+      <function-decl name='set_cpus_allowed_ptr' mangled-name='set_cpus_allowed_ptr' filepath='kernel/sched/core.c' line='2952' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='set_cpus_allowed_ptr'>
+        <parameter type-id='f23e2572' name='p' filepath='kernel/sched/core.c' line='2952' column='1'/>
+        <parameter type-id='5f8a1ac4' name='new_mask' filepath='kernel/sched/core.c' line='2952' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
       <function-decl name='set_disk_ro' mangled-name='set_disk_ro' filepath='block/genhd.c' line='1403' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='set_disk_ro'>
@@ -154056,9 +154631,9 @@
         <parameter type-id='02f11ed4' name='page' filepath='mm/page-writeback.c' line='2631' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='set_task_cpu' mangled-name='set_task_cpu' filepath='kernel/sched/core.c' line='3125' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='set_task_cpu'>
-        <parameter type-id='f23e2572' name='p' filepath='kernel/sched/core.c' line='3125' column='1'/>
-        <parameter type-id='f0981eeb' name='new_cpu' filepath='kernel/sched/core.c' line='3125' column='1'/>
+      <function-decl name='set_task_cpu' mangled-name='set_task_cpu' filepath='kernel/sched/core.c' line='3092' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='set_task_cpu'>
+        <parameter type-id='f23e2572' name='p' filepath='kernel/sched/core.c' line='3092' column='1'/>
+        <parameter type-id='f0981eeb' name='new_cpu' filepath='kernel/sched/core.c' line='3092' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
       <function-decl name='set_task_ioprio' mangled-name='set_task_ioprio' filepath='block/ioprio.c' line='36' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='set_task_ioprio'>
@@ -154066,9 +154641,9 @@
         <parameter type-id='95e97e5e' name='ioprio' filepath='block/ioprio.c' line='36' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='set_user_nice' mangled-name='set_user_nice' filepath='kernel/sched/core.c' line='7121' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='set_user_nice'>
-        <parameter type-id='f23e2572' name='p' filepath='kernel/sched/core.c' line='7121' column='1'/>
-        <parameter type-id='bd54fe1a' name='nice' filepath='kernel/sched/core.c' line='7121' column='1'/>
+      <function-decl name='set_user_nice' mangled-name='set_user_nice' filepath='kernel/sched/core.c' line='7088' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='set_user_nice'>
+        <parameter type-id='f23e2572' name='p' filepath='kernel/sched/core.c' line='7088' column='1'/>
+        <parameter type-id='bd54fe1a' name='nice' filepath='kernel/sched/core.c' line='7088' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
       <function-decl name='setattr_copy' mangled-name='setattr_copy' filepath='fs/attr.c' line='242' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='setattr_copy'>
@@ -154106,6 +154681,15 @@
         <parameter type-id='3eb7c31c' name='gfp_mask' filepath='lib/scatterlist.c' line='568' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
+      <function-decl name='sg_copy_buffer' mangled-name='sg_copy_buffer' filepath='lib/scatterlist.c' line='951' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sg_copy_buffer'>
+        <parameter type-id='bf3ef905' name='sgl' filepath='lib/scatterlist.c' line='951' column='1'/>
+        <parameter type-id='f0981eeb' name='nents' filepath='lib/scatterlist.c' line='951' column='1'/>
+        <parameter type-id='eaa32e2f' name='buf' filepath='lib/scatterlist.c' line='951' column='1'/>
+        <parameter type-id='b59d7dce' name='buflen' filepath='lib/scatterlist.c' line='952' column='1'/>
+        <parameter type-id='ad707ada' name='skip' filepath='lib/scatterlist.c' line='952' column='1'/>
+        <parameter type-id='b50a4934' name='to_buffer' filepath='lib/scatterlist.c' line='952' column='1'/>
+        <return type-id='b59d7dce'/>
+      </function-decl>
       <function-decl name='sg_copy_from_buffer' mangled-name='sg_copy_from_buffer' filepath='lib/scatterlist.c' line='997' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sg_copy_from_buffer'>
         <parameter type-id='bf3ef905' name='sgl' filepath='lib/scatterlist.c' line='997' column='1'/>
         <parameter type-id='f0981eeb' name='nents' filepath='lib/scatterlist.c' line='997' column='1'/>
@@ -154194,6 +154778,13 @@
         <parameter type-id='ad707ada' name='skip' filepath='lib/scatterlist.c' line='1051' column='1'/>
         <return type-id='b59d7dce'/>
       </function-decl>
+      <function-decl name='sg_zero_buffer' mangled-name='sg_zero_buffer' filepath='lib/scatterlist.c' line='1066' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sg_zero_buffer'>
+        <parameter type-id='bf3ef905' name='sgl' filepath='lib/scatterlist.c' line='1066' column='1'/>
+        <parameter type-id='f0981eeb' name='nents' filepath='lib/scatterlist.c' line='1066' column='1'/>
+        <parameter type-id='b59d7dce' name='buflen' filepath='lib/scatterlist.c' line='1067' column='1'/>
+        <parameter type-id='ad707ada' name='skip' filepath='lib/scatterlist.c' line='1067' column='1'/>
+        <return type-id='b59d7dce'/>
+      </function-decl>
       <function-decl name='sget_fc' mangled-name='sget_fc' filepath='fs/super.c' line='513' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sget_fc'>
         <parameter type-id='5760dcb0' name='fc' filepath='fs/super.c' line='513' column='1'/>
         <parameter type-id='30341fa1' name='test' filepath='fs/super.c' line='514' column='1'/>
@@ -154239,7 +154830,7 @@
       <function-decl name='show_rcu_tasks_classic_gp_kthread' mangled-name='show_rcu_tasks_classic_gp_kthread' filepath='kernel/rcu/tasks.h' line='608' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='show_rcu_tasks_classic_gp_kthread'>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='show_rcu_tasks_trace_gp_kthread' mangled-name='show_rcu_tasks_trace_gp_kthread' filepath='kernel/rcu/tasks.h' line='1292' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='show_rcu_tasks_trace_gp_kthread'>
+      <function-decl name='show_rcu_tasks_trace_gp_kthread' mangled-name='show_rcu_tasks_trace_gp_kthread' filepath='kernel/rcu/tasks.h' line='1278' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='show_rcu_tasks_trace_gp_kthread'>
         <return type-id='48b5725f'/>
       </function-decl>
       <function-decl name='show_regs' mangled-name='show_regs' filepath='arch/arm64/kernel/process.c' line='245' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='show_regs'>
@@ -154257,15 +154848,15 @@
         <parameter type-id='95e97e5e' name='priority' filepath='mm/vmscan.c' line='908' column='1'/>
         <return type-id='7359adad'/>
       </function-decl>
-      <function-decl name='si_mem_available' mangled-name='si_mem_available' filepath='mm/page_alloc.c' line='5927' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='si_mem_available'>
+      <function-decl name='si_mem_available' mangled-name='si_mem_available' filepath='mm/page_alloc.c' line='5930' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='si_mem_available'>
         <return type-id='bd54fe1a'/>
       </function-decl>
-      <function-decl name='si_meminfo' mangled-name='si_meminfo' filepath='mm/page_alloc.c' line='5973' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='si_meminfo'>
-        <parameter type-id='0f561784' name='val' filepath='mm/page_alloc.c' line='5973' column='1'/>
+      <function-decl name='si_meminfo' mangled-name='si_meminfo' filepath='mm/page_alloc.c' line='5976' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='si_meminfo'>
+        <parameter type-id='0f561784' name='val' filepath='mm/page_alloc.c' line='5976' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='si_swapinfo' mangled-name='si_swapinfo' filepath='mm/swapfile.c' line='3406' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='si_swapinfo'>
-        <parameter type-id='0f561784' name='val' filepath='mm/swapfile.c' line='3406' column='1'/>
+      <function-decl name='si_swapinfo' mangled-name='si_swapinfo' filepath='mm/swapfile.c' line='3407' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='si_swapinfo'>
+        <parameter type-id='0f561784' name='val' filepath='mm/swapfile.c' line='3407' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
       <function-decl name='sigprocmask' mangled-name='sigprocmask' filepath='kernel/signal.c' line='3090' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sigprocmask'>
@@ -154301,6 +154892,8 @@
         <parameter type-id='b53e8dbb' name='ppos' filepath='fs/libfs.c' line='1007' column='1'/>
         <return type-id='79a0948f'/>
       </function-decl>
+      <var-decl name='simple_dir_inode_operations' type-id='c8e0fb8e' mangled-name='simple_dir_inode_operations' visibility='default' filepath='fs/libfs.c' line='241' column='1' elf-symbol-id='simple_dir_inode_operations'/>
+      <var-decl name='simple_dir_operations' type-id='b8ae588d' mangled-name='simple_dir_operations' visibility='default' filepath='fs/libfs.c' line='231' column='1' elf-symbol-id='simple_dir_operations'/>
       <function-decl name='simple_get_link' mangled-name='simple_get_link' filepath='fs/libfs.c' line='1281' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='simple_get_link'>
         <parameter type-id='27675065' name='dentry' filepath='fs/libfs.c' line='1281' column='1'/>
         <parameter type-id='7e666abe' name='inode' filepath='fs/libfs.c' line='1281' column='1'/>
@@ -154320,6 +154913,11 @@
         <parameter type-id='b59d7dce' name='available' filepath='fs/libfs.c' line='730' column='1'/>
         <return type-id='79a0948f'/>
       </function-decl>
+      <function-decl name='simple_statfs' mangled-name='simple_statfs' filepath='fs/libfs.c' line='41' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='simple_statfs'>
+        <parameter type-id='27675065' name='dentry' filepath='fs/libfs.c' line='41' column='1'/>
+        <parameter type-id='087d687b' name='buf' filepath='fs/libfs.c' line='41' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
       <function-decl name='simple_strtol' mangled-name='simple_strtol' filepath='include/linux/kstrtox.h' line='146' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='simple_strtol'>
         <parameter type-id='80f4b756'/>
         <parameter type-id='9b23c9ad'/>
@@ -154423,8 +155021,8 @@
         <parameter type-id='3eb7c31c' name='gfp_mask' filepath='net/core/skbuff.c' line='1529' column='1'/>
         <return type-id='0fbf3cfd'/>
       </function-decl>
-      <function-decl name='skb_clone_sk' mangled-name='skb_clone_sk' filepath='net/core/skbuff.c' line='4868' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='skb_clone_sk'>
-        <parameter type-id='0fbf3cfd' name='skb' filepath='net/core/skbuff.c' line='4868' column='1'/>
+      <function-decl name='skb_clone_sk' mangled-name='skb_clone_sk' filepath='net/core/skbuff.c' line='4867' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='skb_clone_sk'>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/core/skbuff.c' line='4867' column='1'/>
         <return type-id='0fbf3cfd'/>
       </function-decl>
       <function-decl name='skb_coalesce_rx_frag' mangled-name='skb_coalesce_rx_frag' filepath='net/core/skbuff.c' line='616' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='skb_coalesce_rx_frag'>
@@ -154434,9 +155032,9 @@
         <parameter type-id='f0981eeb' name='truesize' filepath='net/core/skbuff.c' line='617' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='skb_complete_wifi_ack' mangled-name='skb_complete_wifi_ack' filepath='net/core/skbuff.c' line='5015' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='skb_complete_wifi_ack'>
-        <parameter type-id='0fbf3cfd' name='skb' filepath='net/core/skbuff.c' line='5015' column='1'/>
-        <parameter type-id='b50a4934' name='acked' filepath='net/core/skbuff.c' line='5015' column='1'/>
+      <function-decl name='skb_complete_wifi_ack' mangled-name='skb_complete_wifi_ack' filepath='net/core/skbuff.c' line='5014' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='skb_complete_wifi_ack'>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/core/skbuff.c' line='5014' column='1'/>
+        <parameter type-id='b50a4934' name='acked' filepath='net/core/skbuff.c' line='5014' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
       <function-decl name='skb_copy' mangled-name='skb_copy' filepath='net/core/skbuff.c' line='1608' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='skb_copy'>
@@ -154477,10 +155075,10 @@
         <parameter type-id='3eb7c31c' name='gfp_mask' filepath='net/core/skbuff.c' line='1441' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='skb_cow_data' mangled-name='skb_cow_data' filepath='net/core/skbuff.c' line='4689' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='skb_cow_data'>
-        <parameter type-id='0fbf3cfd' name='skb' filepath='net/core/skbuff.c' line='4689' column='1'/>
-        <parameter type-id='95e97e5e' name='tailbits' filepath='net/core/skbuff.c' line='4689' column='1'/>
-        <parameter type-id='a10cc675' name='trailer' filepath='net/core/skbuff.c' line='4689' column='1'/>
+      <function-decl name='skb_cow_data' mangled-name='skb_cow_data' filepath='net/core/skbuff.c' line='4688' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='skb_cow_data'>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/core/skbuff.c' line='4688' column='1'/>
+        <parameter type-id='95e97e5e' name='tailbits' filepath='net/core/skbuff.c' line='4688' column='1'/>
+        <parameter type-id='a10cc675' name='trailer' filepath='net/core/skbuff.c' line='4688' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
       <function-decl name='skb_dequeue' mangled-name='skb_dequeue' filepath='net/core/skbuff.c' line='3269' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='skb_dequeue'>
@@ -154497,9 +155095,9 @@
         <parameter type-id='b50a4934' name='full_pkt' filepath='net/core/skbuff.c' line='813' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='skb_ensure_writable' mangled-name='skb_ensure_writable' filepath='net/core/skbuff.c' line='5750' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='skb_ensure_writable'>
-        <parameter type-id='0fbf3cfd' name='skb' filepath='net/core/skbuff.c' line='5750' column='1'/>
-        <parameter type-id='95e97e5e' name='write_len' filepath='net/core/skbuff.c' line='5750' column='1'/>
+      <function-decl name='skb_ensure_writable' mangled-name='skb_ensure_writable' filepath='net/core/skbuff.c' line='5749' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='skb_ensure_writable'>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/core/skbuff.c' line='5749' column='1'/>
+        <parameter type-id='95e97e5e' name='write_len' filepath='net/core/skbuff.c' line='5749' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
       <function-decl name='skb_free_datagram' mangled-name='skb_free_datagram' filepath='net/core/datagram.c' line='323' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='skb_free_datagram'>
@@ -154513,10 +155111,10 @@
         <parameter type-id='3eb7c31c' name='gfp' filepath='net/core/sock.c' line='2617' column='1'/>
         <return type-id='b50a4934'/>
       </function-decl>
-      <function-decl name='skb_partial_csum_set' mangled-name='skb_partial_csum_set' filepath='net/core/skbuff.c' line='5053' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='skb_partial_csum_set'>
-        <parameter type-id='0fbf3cfd' name='skb' filepath='net/core/skbuff.c' line='5053' column='1'/>
-        <parameter type-id='1dc6a898' name='start' filepath='net/core/skbuff.c' line='5053' column='1'/>
-        <parameter type-id='1dc6a898' name='off' filepath='net/core/skbuff.c' line='5053' column='1'/>
+      <function-decl name='skb_partial_csum_set' mangled-name='skb_partial_csum_set' filepath='net/core/skbuff.c' line='5052' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='skb_partial_csum_set'>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/core/skbuff.c' line='5052' column='1'/>
+        <parameter type-id='1dc6a898' name='start' filepath='net/core/skbuff.c' line='5052' column='1'/>
+        <parameter type-id='1dc6a898' name='off' filepath='net/core/skbuff.c' line='5052' column='1'/>
         <return type-id='b50a4934'/>
       </function-decl>
       <function-decl name='skb_pull' mangled-name='skb_pull' filepath='net/core/skbuff.c' line='2081' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='skb_pull'>
@@ -154565,9 +155163,9 @@
         <parameter type-id='7292109c' name='err' filepath='net/core/datagram.c' line='313' column='1'/>
         <return type-id='0fbf3cfd'/>
       </function-decl>
-      <function-decl name='skb_scrub_packet' mangled-name='skb_scrub_packet' filepath='net/core/skbuff.c' line='5518' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='skb_scrub_packet'>
-        <parameter type-id='0fbf3cfd' name='skb' filepath='net/core/skbuff.c' line='5518' column='1'/>
-        <parameter type-id='b50a4934' name='xnet' filepath='net/core/skbuff.c' line='5518' column='1'/>
+      <function-decl name='skb_scrub_packet' mangled-name='skb_scrub_packet' filepath='net/core/skbuff.c' line='5517' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='skb_scrub_packet'>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/core/skbuff.c' line='5517' column='1'/>
+        <parameter type-id='b50a4934' name='xnet' filepath='net/core/skbuff.c' line='5517' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
       <function-decl name='skb_set_owner_w' mangled-name='skb_set_owner_w' filepath='net/core/sock.c' line='2234' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='skb_set_owner_w'>
@@ -154588,18 +155186,18 @@
         <parameter type-id='95e97e5e' name='len' filepath='net/core/skbuff.c' line='2781' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='skb_to_sgvec' mangled-name='skb_to_sgvec' filepath='net/core/skbuff.c' line='4631' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='skb_to_sgvec'>
-        <parameter type-id='0fbf3cfd' name='skb' filepath='net/core/skbuff.c' line='4631' column='1'/>
-        <parameter type-id='bf3ef905' name='sg' filepath='net/core/skbuff.c' line='4631' column='1'/>
-        <parameter type-id='95e97e5e' name='offset' filepath='net/core/skbuff.c' line='4631' column='1'/>
-        <parameter type-id='95e97e5e' name='len' filepath='net/core/skbuff.c' line='4631' column='1'/>
+      <function-decl name='skb_to_sgvec' mangled-name='skb_to_sgvec' filepath='net/core/skbuff.c' line='4630' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='skb_to_sgvec'>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/core/skbuff.c' line='4630' column='1'/>
+        <parameter type-id='bf3ef905' name='sg' filepath='net/core/skbuff.c' line='4630' column='1'/>
+        <parameter type-id='95e97e5e' name='offset' filepath='net/core/skbuff.c' line='4630' column='1'/>
+        <parameter type-id='95e97e5e' name='len' filepath='net/core/skbuff.c' line='4630' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='skb_to_sgvec_nomark' mangled-name='skb_to_sgvec_nomark' filepath='net/core/skbuff.c' line='4663' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='skb_to_sgvec_nomark'>
-        <parameter type-id='0fbf3cfd' name='skb' filepath='net/core/skbuff.c' line='4663' column='1'/>
-        <parameter type-id='bf3ef905' name='sg' filepath='net/core/skbuff.c' line='4663' column='1'/>
-        <parameter type-id='95e97e5e' name='offset' filepath='net/core/skbuff.c' line='4664' column='1'/>
-        <parameter type-id='95e97e5e' name='len' filepath='net/core/skbuff.c' line='4664' column='1'/>
+      <function-decl name='skb_to_sgvec_nomark' mangled-name='skb_to_sgvec_nomark' filepath='net/core/skbuff.c' line='4662' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='skb_to_sgvec_nomark'>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/core/skbuff.c' line='4662' column='1'/>
+        <parameter type-id='bf3ef905' name='sg' filepath='net/core/skbuff.c' line='4662' column='1'/>
+        <parameter type-id='95e97e5e' name='offset' filepath='net/core/skbuff.c' line='4663' column='1'/>
+        <parameter type-id='95e97e5e' name='len' filepath='net/core/skbuff.c' line='4663' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
       <function-decl name='skb_trim' mangled-name='skb_trim' filepath='net/core/skbuff.c' line='2096' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='skb_trim'>
@@ -154607,9 +155205,9 @@
         <parameter type-id='f0981eeb' name='len' filepath='net/core/skbuff.c' line='2096' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='skb_tstamp_tx' mangled-name='skb_tstamp_tx' filepath='net/core/skbuff.c' line='5007' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='skb_tstamp_tx'>
-        <parameter type-id='0fbf3cfd' name='orig_skb' filepath='net/core/skbuff.c' line='5007' column='1'/>
-        <parameter type-id='68197365' name='hwtstamps' filepath='net/core/skbuff.c' line='5008' column='1'/>
+      <function-decl name='skb_tstamp_tx' mangled-name='skb_tstamp_tx' filepath='net/core/skbuff.c' line='5006' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='skb_tstamp_tx'>
+        <parameter type-id='0fbf3cfd' name='orig_skb' filepath='net/core/skbuff.c' line='5006' column='1'/>
+        <parameter type-id='68197365' name='hwtstamps' filepath='net/core/skbuff.c' line='5007' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
       <function-decl name='skb_unlink' mangled-name='skb_unlink' filepath='net/core/skbuff.c' line='3395' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='skb_unlink'>
@@ -154808,21 +155406,21 @@
         <parameter type-id='eaa32e2f' name='arg' filepath='sound/core/vmaster.c' line='503' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='snd_ctl_boolean_mono_info' mangled-name='snd_ctl_boolean_mono_info' filepath='sound/core/control.c' line='2361' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_ctl_boolean_mono_info'>
-        <parameter type-id='7a5054b7' name='kcontrol' filepath='sound/core/control.c' line='2361' column='1'/>
-        <parameter type-id='0e291009' name='uinfo' filepath='sound/core/control.c' line='2362' column='1'/>
+      <function-decl name='snd_ctl_boolean_mono_info' mangled-name='snd_ctl_boolean_mono_info' filepath='sound/core/control.c' line='2367' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_ctl_boolean_mono_info'>
+        <parameter type-id='7a5054b7' name='kcontrol' filepath='sound/core/control.c' line='2367' column='1'/>
+        <parameter type-id='0e291009' name='uinfo' filepath='sound/core/control.c' line='2368' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='snd_ctl_boolean_stereo_info' mangled-name='snd_ctl_boolean_stereo_info' filepath='sound/core/control.c' line='2381' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_ctl_boolean_stereo_info'>
-        <parameter type-id='7a5054b7' name='kcontrol' filepath='sound/core/control.c' line='2381' column='1'/>
-        <parameter type-id='0e291009' name='uinfo' filepath='sound/core/control.c' line='2382' column='1'/>
+      <function-decl name='snd_ctl_boolean_stereo_info' mangled-name='snd_ctl_boolean_stereo_info' filepath='sound/core/control.c' line='2387' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_ctl_boolean_stereo_info'>
+        <parameter type-id='7a5054b7' name='kcontrol' filepath='sound/core/control.c' line='2387' column='1'/>
+        <parameter type-id='0e291009' name='uinfo' filepath='sound/core/control.c' line='2388' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='snd_ctl_enum_info' mangled-name='snd_ctl_enum_info' filepath='sound/core/control.c' line='2405' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_ctl_enum_info'>
-        <parameter type-id='0e291009' name='info' filepath='sound/core/control.c' line='2405' column='1'/>
-        <parameter type-id='f0981eeb' name='channels' filepath='sound/core/control.c' line='2405' column='1'/>
-        <parameter type-id='f0981eeb' name='items' filepath='sound/core/control.c' line='2406' column='1'/>
-        <parameter type-id='13956559' name='names' filepath='sound/core/control.c' line='2406' column='1'/>
+      <function-decl name='snd_ctl_enum_info' mangled-name='snd_ctl_enum_info' filepath='sound/core/control.c' line='2411' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_ctl_enum_info'>
+        <parameter type-id='0e291009' name='info' filepath='sound/core/control.c' line='2411' column='1'/>
+        <parameter type-id='f0981eeb' name='channels' filepath='sound/core/control.c' line='2411' column='1'/>
+        <parameter type-id='f0981eeb' name='items' filepath='sound/core/control.c' line='2412' column='1'/>
+        <parameter type-id='13956559' name='names' filepath='sound/core/control.c' line='2412' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
       <function-decl name='snd_ctl_find_id' mangled-name='snd_ctl_find_id' filepath='sound/core/control.c' line='807' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_ctl_find_id'>
@@ -155888,14 +156486,14 @@
         <parameter type-id='d661a615' name='hw' filepath='sound/soc/soc-pcm.c' line='298' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='snd_soc_tplg_component_load' mangled-name='snd_soc_tplg_component_load' filepath='sound/soc/soc-topology.c' line='2637' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_tplg_component_load'>
-        <parameter type-id='807b7702' name='comp' filepath='sound/soc/soc-topology.c' line='2637' column='1'/>
-        <parameter type-id='76e6e22f' name='ops' filepath='sound/soc/soc-topology.c' line='2638' column='1'/>
-        <parameter type-id='fce0537d' name='fw' filepath='sound/soc/soc-topology.c' line='2638' column='1'/>
+      <function-decl name='snd_soc_tplg_component_load' mangled-name='snd_soc_tplg_component_load' filepath='sound/soc/soc-topology.c' line='2641' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_tplg_component_load'>
+        <parameter type-id='807b7702' name='comp' filepath='sound/soc/soc-topology.c' line='2641' column='1'/>
+        <parameter type-id='76e6e22f' name='ops' filepath='sound/soc/soc-topology.c' line='2642' column='1'/>
+        <parameter type-id='fce0537d' name='fw' filepath='sound/soc/soc-topology.c' line='2642' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='snd_soc_tplg_component_remove' mangled-name='snd_soc_tplg_component_remove' filepath='sound/soc/soc-topology.c' line='2676' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_tplg_component_remove'>
-        <parameter type-id='807b7702' name='comp' filepath='sound/soc/soc-topology.c' line='2676' column='1'/>
+      <function-decl name='snd_soc_tplg_component_remove' mangled-name='snd_soc_tplg_component_remove' filepath='sound/soc/soc-topology.c' line='2680' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_tplg_component_remove'>
+        <parameter type-id='807b7702' name='comp' filepath='sound/soc/soc-topology.c' line='2680' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
       <function-decl name='snd_soc_tplg_widget_bind_event' mangled-name='snd_soc_tplg_widget_bind_event' filepath='sound/soc/soc-topology.c' line='596' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_tplg_widget_bind_event'>
@@ -156689,12 +157287,12 @@
         <parameter type-id='c485c22c' name='bh' filepath='fs/buffer.c' line='3060' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='submit_bio' mangled-name='submit_bio' filepath='block/blk-core.c' line='1058' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='submit_bio'>
-        <parameter type-id='fb55efa1' name='bio' filepath='block/blk-core.c' line='1058' column='1'/>
+      <function-decl name='submit_bio' mangled-name='submit_bio' filepath='block/blk-core.c' line='1054' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='submit_bio'>
+        <parameter type-id='fb55efa1' name='bio' filepath='block/blk-core.c' line='1054' column='1'/>
         <return type-id='041bc907'/>
       </function-decl>
-      <function-decl name='submit_bio_noacct' mangled-name='submit_bio_noacct' filepath='block/blk-core.c' line='1026' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='submit_bio_noacct'>
-        <parameter type-id='fb55efa1' name='bio' filepath='block/blk-core.c' line='1026' column='1'/>
+      <function-decl name='submit_bio_noacct' mangled-name='submit_bio_noacct' filepath='block/blk-core.c' line='1022' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='submit_bio_noacct'>
+        <parameter type-id='fb55efa1' name='bio' filepath='block/blk-core.c' line='1022' column='1'/>
         <return type-id='041bc907'/>
       </function-decl>
       <function-decl name='submit_bio_wait' mangled-name='submit_bio_wait' filepath='block/bio.c' line='1223' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='submit_bio_wait'>
@@ -156763,7 +157361,7 @@
       <function-decl name='synchronize_rcu_tasks' mangled-name='synchronize_rcu_tasks' filepath='kernel/rcu/tasks.h' line='575' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='synchronize_rcu_tasks'>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='synchronize_rcu_tasks_trace' mangled-name='synchronize_rcu_tasks_trace' filepath='kernel/rcu/tasks.h' line='1249' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='synchronize_rcu_tasks_trace'>
+      <function-decl name='synchronize_rcu_tasks_trace' mangled-name='synchronize_rcu_tasks_trace' filepath='kernel/rcu/tasks.h' line='1235' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='synchronize_rcu_tasks_trace'>
         <return type-id='48b5725f'/>
       </function-decl>
       <function-decl name='synchronize_srcu' mangled-name='synchronize_srcu' filepath='kernel/rcu/srcutree.c' line='1006' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='synchronize_srcu'>
@@ -156811,10 +157409,10 @@
         <parameter type-id='80f4b756' name='property' filepath='drivers/mfd/syscon.c' line='266' column='1'/>
         <return type-id='29af9a71'/>
       </function-decl>
-      <var-decl name='sysctl_sched_features' type-id='f0981eeb' mangled-name='sysctl_sched_features' visibility='default' filepath='kernel/sched/core.c' line='74' column='1' elf-symbol-id='sysctl_sched_features'/>
+      <var-decl name='sysctl_sched_features' type-id='f0981eeb' mangled-name='sysctl_sched_features' visibility='default' filepath='kernel/sched/core.c' line='71' column='1' elf-symbol-id='sysctl_sched_features'/>
       <var-decl name='sysctl_sched_latency' type-id='f0981eeb' mangled-name='sysctl_sched_latency' visibility='default' filepath='kernel/sched/fair.c' line='42' column='1' elf-symbol-id='sysctl_sched_latency'/>
-      <var-decl name='sysctl_vals' type-id='1fc64662' mangled-name='sysctl_vals' visibility='default' filepath='fs/proc/proc_sysctl.c' line='28' column='1' elf-symbol-id='sysctl_vals'/>
-      <var-decl name='sysctl_vals_new' type-id='dcbdbf4a' mangled-name='sysctl_vals_new' visibility='default' filepath='fs/proc/proc_sysctl.c' line='30' column='1' elf-symbol-id='sysctl_vals_new'/>
+      <var-decl name='sysctl_vals' type-id='1fc64662' mangled-name='sysctl_vals' visibility='default' filepath='fs/proc/proc_sysctl.c' line='29' column='1' elf-symbol-id='sysctl_vals'/>
+      <var-decl name='sysctl_vals_new' type-id='dcbdbf4a' mangled-name='sysctl_vals_new' visibility='default' filepath='fs/proc/proc_sysctl.c' line='31' column='1' elf-symbol-id='sysctl_vals_new'/>
       <function-decl name='sysfb_disable' mangled-name='sysfb_disable' filepath='drivers/firmware/sysfb.c' line='63' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sysfb_disable'>
         <return type-id='48b5725f'/>
       </function-decl>
@@ -156863,6 +157461,11 @@
         <parameter type-id='80f4b756' name='name' filepath='fs/sysfs/symlink.c' line='90' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
+      <function-decl name='sysfs_create_mount_point' mangled-name='sysfs_create_mount_point' filepath='fs/sysfs/dir.c' line='135' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sysfs_create_mount_point'>
+        <parameter type-id='d30bdc51' name='parent_kobj' filepath='fs/sysfs/dir.c' line='135' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='fs/sysfs/dir.c' line='135' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
       <function-decl name='sysfs_emit' mangled-name='sysfs_emit' filepath='fs/sysfs/file.c' line='732' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sysfs_emit'>
         <parameter type-id='26a90f95' name='buf' filepath='fs/sysfs/file.c' line='732' column='1'/>
         <parameter type-id='80f4b756' name='fmt' filepath='fs/sysfs/file.c' line='732' column='1'/>
@@ -156930,6 +157533,11 @@
         <parameter type-id='80f4b756' name='link_name' filepath='fs/sysfs/group.c' line='406' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
+      <function-decl name='sysfs_remove_mount_point' mangled-name='sysfs_remove_mount_point' filepath='fs/sysfs/dir.c' line='156' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sysfs_remove_mount_point'>
+        <parameter type-id='d30bdc51' name='parent_kobj' filepath='fs/sysfs/dir.c' line='156' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='fs/sysfs/dir.c' line='156' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
       <function-decl name='sysfs_streq' mangled-name='sysfs_streq' filepath='lib/string.c' line='701' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sysfs_streq'>
         <parameter type-id='80f4b756' name='s1' filepath='lib/string.c' line='701' column='1'/>
         <parameter type-id='80f4b756' name='s2' filepath='lib/string.c' line='701' column='1'/>
@@ -156975,13 +157583,13 @@
         <parameter type-id='95e97e5e' name='cpu' filepath='kernel/sched/rt.c' line='1493' column='1'/>
         <return type-id='b50a4934'/>
       </function-decl>
-      <function-decl name='task_rq_lock' mangled-name='task_rq_lock' filepath='kernel/sched/core.c' line='589' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='task_rq_lock'>
-        <parameter type-id='f23e2572' name='p' filepath='kernel/sched/core.c' line='589' column='1'/>
-        <parameter type-id='d0163a5e' name='rf' filepath='kernel/sched/core.c' line='589' column='1'/>
+      <function-decl name='task_rq_lock' mangled-name='task_rq_lock' filepath='kernel/sched/core.c' line='586' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='task_rq_lock'>
+        <parameter type-id='f23e2572' name='p' filepath='kernel/sched/core.c' line='586' column='1'/>
+        <parameter type-id='d0163a5e' name='rf' filepath='kernel/sched/core.c' line='586' column='1'/>
         <return type-id='6ed6b432'/>
       </function-decl>
-      <function-decl name='task_sched_runtime' mangled-name='task_sched_runtime' filepath='kernel/sched/core.c' line='5343' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='task_sched_runtime'>
-        <parameter type-id='f23e2572' name='p' filepath='kernel/sched/core.c' line='5343' column='1'/>
+      <function-decl name='task_sched_runtime' mangled-name='task_sched_runtime' filepath='kernel/sched/core.c' line='5311' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='task_sched_runtime'>
+        <parameter type-id='f23e2572' name='p' filepath='kernel/sched/core.c' line='5311' column='1'/>
         <return type-id='0d77e947'/>
       </function-decl>
       <function-decl name='tasklet_init' mangled-name='tasklet_init' filepath='kernel/softirq.c' line='840' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tasklet_init'>
@@ -157085,16 +157693,16 @@
         <parameter type-id='eefe253e' name='tcpci' filepath='drivers/usb/typec/tcpm/tcpci.c' line='829' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='tcpm_cc_change' mangled-name='tcpm_cc_change' filepath='drivers/usb/typec/tcpm/tcpm.c' line='5416' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tcpm_cc_change'>
-        <parameter type-id='426e425b' name='port' filepath='drivers/usb/typec/tcpm/tcpm.c' line='5416' column='1'/>
+      <function-decl name='tcpm_cc_change' mangled-name='tcpm_cc_change' filepath='drivers/usb/typec/tcpm/tcpm.c' line='5415' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tcpm_cc_change'>
+        <parameter type-id='426e425b' name='port' filepath='drivers/usb/typec/tcpm/tcpm.c' line='5415' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
       <function-decl name='tcpm_is_debouncing' mangled-name='tcpm_is_debouncing' filepath='drivers/usb/typec/tcpm/tcpm.c' line='984' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tcpm_is_debouncing'>
         <parameter type-id='426e425b' name='port' filepath='drivers/usb/typec/tcpm/tcpm.c' line='984' column='1'/>
         <return type-id='b50a4934'/>
       </function-decl>
-      <function-decl name='tcpm_pd_hard_reset' mangled-name='tcpm_pd_hard_reset' filepath='drivers/usb/typec/tcpm/tcpm.c' line='5434' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tcpm_pd_hard_reset'>
-        <parameter type-id='426e425b' name='port' filepath='drivers/usb/typec/tcpm/tcpm.c' line='5434' column='1'/>
+      <function-decl name='tcpm_pd_hard_reset' mangled-name='tcpm_pd_hard_reset' filepath='drivers/usb/typec/tcpm/tcpm.c' line='5433' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tcpm_pd_hard_reset'>
+        <parameter type-id='426e425b' name='port' filepath='drivers/usb/typec/tcpm/tcpm.c' line='5433' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
       <function-decl name='tcpm_pd_receive' mangled-name='tcpm_pd_receive' filepath='drivers/usb/typec/tcpm/tcpm.c' line='2937' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tcpm_pd_receive'>
@@ -157107,32 +157715,32 @@
         <parameter type-id='a2f9e316' name='status' filepath='drivers/usb/typec/tcpm/tcpm.c' line='923' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='tcpm_register_port' mangled-name='tcpm_register_port' filepath='drivers/usb/typec/tcpm/tcpm.c' line='6408' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tcpm_register_port'>
-        <parameter type-id='fa0b179b' name='dev' filepath='drivers/usb/typec/tcpm/tcpm.c' line='6408' column='1'/>
-        <parameter type-id='15b1f129' name='tcpc' filepath='drivers/usb/typec/tcpm/tcpm.c' line='6408' column='1'/>
+      <function-decl name='tcpm_register_port' mangled-name='tcpm_register_port' filepath='drivers/usb/typec/tcpm/tcpm.c' line='6407' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tcpm_register_port'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/usb/typec/tcpm/tcpm.c' line='6407' column='1'/>
+        <parameter type-id='15b1f129' name='tcpc' filepath='drivers/usb/typec/tcpm/tcpm.c' line='6407' column='1'/>
         <return type-id='426e425b'/>
       </function-decl>
-      <function-decl name='tcpm_sink_frs' mangled-name='tcpm_sink_frs' filepath='drivers/usb/typec/tcpm/tcpm.c' line='5443' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tcpm_sink_frs'>
-        <parameter type-id='426e425b' name='port' filepath='drivers/usb/typec/tcpm/tcpm.c' line='5443' column='1'/>
+      <function-decl name='tcpm_sink_frs' mangled-name='tcpm_sink_frs' filepath='drivers/usb/typec/tcpm/tcpm.c' line='5442' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tcpm_sink_frs'>
+        <parameter type-id='426e425b' name='port' filepath='drivers/usb/typec/tcpm/tcpm.c' line='5442' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='tcpm_sourcing_vbus' mangled-name='tcpm_sourcing_vbus' filepath='drivers/usb/typec/tcpm/tcpm.c' line='5452' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tcpm_sourcing_vbus'>
-        <parameter type-id='426e425b' name='port' filepath='drivers/usb/typec/tcpm/tcpm.c' line='5452' column='1'/>
+      <function-decl name='tcpm_sourcing_vbus' mangled-name='tcpm_sourcing_vbus' filepath='drivers/usb/typec/tcpm/tcpm.c' line='5451' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tcpm_sourcing_vbus'>
+        <parameter type-id='426e425b' name='port' filepath='drivers/usb/typec/tcpm/tcpm.c' line='5451' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='tcpm_unregister_port' mangled-name='tcpm_unregister_port' filepath='drivers/usb/typec/tcpm/tcpm.c' line='6510' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tcpm_unregister_port'>
-        <parameter type-id='426e425b' name='port' filepath='drivers/usb/typec/tcpm/tcpm.c' line='6510' column='1'/>
+      <function-decl name='tcpm_unregister_port' mangled-name='tcpm_unregister_port' filepath='drivers/usb/typec/tcpm/tcpm.c' line='6509' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tcpm_unregister_port'>
+        <parameter type-id='426e425b' name='port' filepath='drivers/usb/typec/tcpm/tcpm.c' line='6509' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='tcpm_update_sink_capabilities' mangled-name='tcpm_update_sink_capabilities' filepath='drivers/usb/typec/tcpm/tcpm.c' line='6110' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tcpm_update_sink_capabilities'>
-        <parameter type-id='426e425b' name='port' filepath='drivers/usb/typec/tcpm/tcpm.c' line='6110' column='1'/>
-        <parameter type-id='aded214c' name='pdo' filepath='drivers/usb/typec/tcpm/tcpm.c' line='6110' column='1'/>
-        <parameter type-id='f0981eeb' name='nr_pdo' filepath='drivers/usb/typec/tcpm/tcpm.c' line='6110' column='1'/>
-        <parameter type-id='f0981eeb' name='operating_snk_mw' filepath='drivers/usb/typec/tcpm/tcpm.c' line='6111' column='1'/>
+      <function-decl name='tcpm_update_sink_capabilities' mangled-name='tcpm_update_sink_capabilities' filepath='drivers/usb/typec/tcpm/tcpm.c' line='6109' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tcpm_update_sink_capabilities'>
+        <parameter type-id='426e425b' name='port' filepath='drivers/usb/typec/tcpm/tcpm.c' line='6109' column='1'/>
+        <parameter type-id='aded214c' name='pdo' filepath='drivers/usb/typec/tcpm/tcpm.c' line='6109' column='1'/>
+        <parameter type-id='f0981eeb' name='nr_pdo' filepath='drivers/usb/typec/tcpm/tcpm.c' line='6109' column='1'/>
+        <parameter type-id='f0981eeb' name='operating_snk_mw' filepath='drivers/usb/typec/tcpm/tcpm.c' line='6110' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='tcpm_vbus_change' mangled-name='tcpm_vbus_change' filepath='drivers/usb/typec/tcpm/tcpm.c' line='5425' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tcpm_vbus_change'>
-        <parameter type-id='426e425b' name='port' filepath='drivers/usb/typec/tcpm/tcpm.c' line='5425' column='1'/>
+      <function-decl name='tcpm_vbus_change' mangled-name='tcpm_vbus_change' filepath='drivers/usb/typec/tcpm/tcpm.c' line='5424' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tcpm_vbus_change'>
+        <parameter type-id='426e425b' name='port' filepath='drivers/usb/typec/tcpm/tcpm.c' line='5424' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
       <function-decl name='thaw_bdev' mangled-name='thaw_bdev' filepath='block/bdev.c' line='274' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='thaw_bdev'>
@@ -157320,22 +157928,22 @@
         <parameter type-id='b50a4934' name='multitouch' filepath='drivers/input/touchscreen.c' line='198' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='trace_array_destroy' mangled-name='trace_array_destroy' filepath='kernel/trace/trace.c' line='9393' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='trace_array_destroy'>
-        <parameter type-id='898c1076' name='this_tr' filepath='kernel/trace/trace.c' line='9393' column='1'/>
+      <function-decl name='trace_array_destroy' mangled-name='trace_array_destroy' filepath='kernel/trace/trace.c' line='9404' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='trace_array_destroy'>
+        <parameter type-id='898c1076' name='this_tr' filepath='kernel/trace/trace.c' line='9404' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='trace_array_get_by_name' mangled-name='trace_array_get_by_name' filepath='kernel/trace/trace.c' line='9330' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='trace_array_get_by_name'>
-        <parameter type-id='80f4b756' name='name' filepath='kernel/trace/trace.c' line='9330' column='1'/>
+      <function-decl name='trace_array_get_by_name' mangled-name='trace_array_get_by_name' filepath='kernel/trace/trace.c' line='9341' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='trace_array_get_by_name'>
+        <parameter type-id='80f4b756' name='name' filepath='kernel/trace/trace.c' line='9341' column='1'/>
         <return type-id='898c1076'/>
       </function-decl>
-      <function-decl name='trace_array_init_printk' mangled-name='trace_array_init_printk' filepath='kernel/trace/trace.c' line='3519' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='trace_array_init_printk'>
-        <parameter type-id='898c1076' name='tr' filepath='kernel/trace/trace.c' line='3519' column='1'/>
+      <function-decl name='trace_array_init_printk' mangled-name='trace_array_init_printk' filepath='kernel/trace/trace.c' line='3520' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='trace_array_init_printk'>
+        <parameter type-id='898c1076' name='tr' filepath='kernel/trace/trace.c' line='3520' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='trace_array_printk' mangled-name='trace_array_printk' filepath='kernel/trace/trace.c' line='3488' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='trace_array_printk'>
-        <parameter type-id='898c1076' name='tr' filepath='kernel/trace/trace.c' line='3488' column='1'/>
-        <parameter type-id='7359adad' name='ip' filepath='kernel/trace/trace.c' line='3489' column='1'/>
-        <parameter type-id='80f4b756' name='fmt' filepath='kernel/trace/trace.c' line='3489' column='1'/>
+      <function-decl name='trace_array_printk' mangled-name='trace_array_printk' filepath='kernel/trace/trace.c' line='3489' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='trace_array_printk'>
+        <parameter type-id='898c1076' name='tr' filepath='kernel/trace/trace.c' line='3489' column='1'/>
+        <parameter type-id='7359adad' name='ip' filepath='kernel/trace/trace.c' line='3490' column='1'/>
+        <parameter type-id='80f4b756' name='fmt' filepath='kernel/trace/trace.c' line='3490' column='1'/>
         <parameter is-variadic='yes'/>
         <return type-id='95e97e5e'/>
       </function-decl>
@@ -157356,8 +157964,8 @@
         <parameter type-id='95e97e5e' name='filter_type' filepath='kernel/trace/trace_events.c' line='144' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='trace_event_buffer_commit' mangled-name='trace_event_buffer_commit' filepath='kernel/trace/trace.c' line='2907' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='trace_event_buffer_commit'>
-        <parameter type-id='9f548f9a' name='fbuffer' filepath='kernel/trace/trace.c' line='2907' column='1'/>
+      <function-decl name='trace_event_buffer_commit' mangled-name='trace_event_buffer_commit' filepath='kernel/trace/trace.c' line='2908' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='trace_event_buffer_commit'>
+        <parameter type-id='9f548f9a' name='fbuffer' filepath='kernel/trace/trace.c' line='2908' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
       <function-decl name='trace_event_buffer_reserve' mangled-name='trace_event_buffer_reserve' filepath='kernel/trace/trace_events.c' line='478' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='trace_event_buffer_reserve'>
@@ -157392,8 +158000,8 @@
         <parameter type-id='80f4b756' name='event' filepath='kernel/trace/trace_events.c' line='3080' column='1'/>
         <return type-id='3d4ca6d2'/>
       </function-decl>
-      <function-decl name='trace_handle_return' mangled-name='trace_handle_return' filepath='kernel/trace/trace.c' line='2598' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='trace_handle_return'>
-        <parameter type-id='fc932690' name='s' filepath='kernel/trace/trace.c' line='2598' column='1'/>
+      <function-decl name='trace_handle_return' mangled-name='trace_handle_return' filepath='kernel/trace/trace.c' line='2599' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='trace_handle_return'>
+        <parameter type-id='fc932690' name='s' filepath='kernel/trace/trace.c' line='2599' column='1'/>
         <return type-id='b1a0a119'/>
       </function-decl>
       <function-decl name='trace_output_call' mangled-name='trace_output_call' filepath='kernel/trace/trace_output.c' line='336' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='trace_output_call'>
@@ -157478,7 +158086,7 @@
         <return type-id='95e97e5e'/>
       </function-decl>
       <var-decl name='tracepoint_srcu' type-id='e4a7867c' mangled-name='tracepoint_srcu' visibility='default' filepath='kernel/tracepoint.c' line='28' column='1' elf-symbol-id='tracepoint_srcu'/>
-      <function-decl name='tracing_off' mangled-name='tracing_off' filepath='kernel/trace/trace.c' line='1440' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tracing_off'>
+      <function-decl name='tracing_off' mangled-name='tracing_off' filepath='kernel/trace/trace.c' line='1441' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tracing_off'>
         <return type-id='48b5725f'/>
       </function-decl>
       <function-decl name='truncate_inode_pages' mangled-name='truncate_inode_pages' filepath='mm/truncate.c' line='423' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='truncate_inode_pages'>
@@ -157520,11 +158128,11 @@
         <parameter type-id='9248e67f' name='timer' filepath='kernel/time/timer.c' line='1229' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='try_to_free_mem_cgroup_pages' mangled-name='try_to_free_mem_cgroup_pages' filepath='mm/vmscan.c' line='6463' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='try_to_free_mem_cgroup_pages'>
-        <parameter type-id='223696fb' name='memcg' filepath='mm/vmscan.c' line='6463' column='1'/>
-        <parameter type-id='7359adad' name='nr_pages' filepath='mm/vmscan.c' line='6464' column='1'/>
-        <parameter type-id='3eb7c31c' name='gfp_mask' filepath='mm/vmscan.c' line='6465' column='1'/>
-        <parameter type-id='b50a4934' name='may_swap' filepath='mm/vmscan.c' line='6466' column='1'/>
+      <function-decl name='try_to_free_mem_cgroup_pages' mangled-name='try_to_free_mem_cgroup_pages' filepath='mm/vmscan.c' line='6462' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='try_to_free_mem_cgroup_pages'>
+        <parameter type-id='223696fb' name='memcg' filepath='mm/vmscan.c' line='6462' column='1'/>
+        <parameter type-id='7359adad' name='nr_pages' filepath='mm/vmscan.c' line='6463' column='1'/>
+        <parameter type-id='3eb7c31c' name='gfp_mask' filepath='mm/vmscan.c' line='6464' column='1'/>
+        <parameter type-id='b50a4934' name='may_swap' filepath='mm/vmscan.c' line='6465' column='1'/>
         <return type-id='7359adad'/>
       </function-decl>
       <function-decl name='try_to_release_page' mangled-name='try_to_release_page' filepath='mm/filemap.c' line='4015' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='try_to_release_page'>
@@ -157821,6 +158429,10 @@
         <parameter type-id='ec77b5b8' name='port' filepath='drivers/tty/tty_buffer.c' line='556' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
+      <function-decl name='tty_get_char_size' mangled-name='tty_get_char_size' filepath='drivers/tty/tty_ioctl.c' line='289' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tty_get_char_size'>
+        <parameter type-id='f0981eeb' name='cflag' filepath='drivers/tty/tty_ioctl.c' line='289' column='1'/>
+        <return type-id='002ac4a6'/>
+      </function-decl>
       <function-decl name='tty_hangup' mangled-name='tty_hangup' filepath='drivers/tty/tty_io.c' line='692' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tty_hangup'>
         <parameter type-id='572fbdca' name='tty' filepath='drivers/tty/tty_io.c' line='692' column='1'/>
         <return type-id='48b5725f'/>
@@ -158216,14 +158828,14 @@
         <parameter type-id='36cb26c7' name='audio_dev' filepath='drivers/usb/gadget/function/u_audio.c' line='626' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='uart_add_one_port' mangled-name='uart_add_one_port' filepath='drivers/tty/serial/serial_core.c' line='2909' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uart_add_one_port'>
-        <parameter type-id='04a219de' name='drv' filepath='drivers/tty/serial/serial_core.c' line='2909' column='1'/>
-        <parameter type-id='af051c69' name='uport' filepath='drivers/tty/serial/serial_core.c' line='2909' column='1'/>
+      <function-decl name='uart_add_one_port' mangled-name='uart_add_one_port' filepath='drivers/tty/serial/serial_core.c' line='2910' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uart_add_one_port'>
+        <parameter type-id='04a219de' name='drv' filepath='drivers/tty/serial/serial_core.c' line='2910' column='1'/>
+        <parameter type-id='af051c69' name='uport' filepath='drivers/tty/serial/serial_core.c' line='2910' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='uart_console_device' mangled-name='uart_console_device' filepath='drivers/tty/serial/serial_core.c' line='2666' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uart_console_device'>
-        <parameter type-id='b9aa0100' name='co' filepath='drivers/tty/serial/serial_core.c' line='2666' column='1'/>
-        <parameter type-id='7292109c' name='index' filepath='drivers/tty/serial/serial_core.c' line='2666' column='1'/>
+      <function-decl name='uart_console_device' mangled-name='uart_console_device' filepath='drivers/tty/serial/serial_core.c' line='2667' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uart_console_device'>
+        <parameter type-id='b9aa0100' name='co' filepath='drivers/tty/serial/serial_core.c' line='2667' column='1'/>
+        <parameter type-id='7292109c' name='index' filepath='drivers/tty/serial/serial_core.c' line='2667' column='1'/>
         <return type-id='c2b4b27b'/>
       </function-decl>
       <function-decl name='uart_console_write' mangled-name='uart_console_write' filepath='drivers/tty/serial/serial_core.c' line='1962' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uart_console_write'>
@@ -158246,26 +158858,26 @@
         <parameter type-id='f0981eeb' name='baud' filepath='drivers/tty/serial/serial_core.c' line='459' column='1'/>
         <return type-id='f0981eeb'/>
       </function-decl>
-      <function-decl name='uart_get_rs485_mode' mangled-name='uart_get_rs485_mode' filepath='drivers/tty/serial/serial_core.c' line='3270' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uart_get_rs485_mode'>
-        <parameter type-id='af051c69' name='port' filepath='drivers/tty/serial/serial_core.c' line='3270' column='1'/>
+      <function-decl name='uart_get_rs485_mode' mangled-name='uart_get_rs485_mode' filepath='drivers/tty/serial/serial_core.c' line='3271' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uart_get_rs485_mode'>
+        <parameter type-id='af051c69' name='port' filepath='drivers/tty/serial/serial_core.c' line='3271' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='uart_handle_cts_change' mangled-name='uart_handle_cts_change' filepath='drivers/tty/serial/serial_core.c' line='3150' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uart_handle_cts_change'>
-        <parameter type-id='af051c69' name='uport' filepath='drivers/tty/serial/serial_core.c' line='3150' column='1'/>
-        <parameter type-id='f0981eeb' name='status' filepath='drivers/tty/serial/serial_core.c' line='3150' column='1'/>
+      <function-decl name='uart_handle_cts_change' mangled-name='uart_handle_cts_change' filepath='drivers/tty/serial/serial_core.c' line='3151' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uart_handle_cts_change'>
+        <parameter type-id='af051c69' name='uport' filepath='drivers/tty/serial/serial_core.c' line='3151' column='1'/>
+        <parameter type-id='f0981eeb' name='status' filepath='drivers/tty/serial/serial_core.c' line='3151' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='uart_handle_dcd_change' mangled-name='uart_handle_dcd_change' filepath='drivers/tty/serial/serial_core.c' line='3115' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uart_handle_dcd_change'>
-        <parameter type-id='af051c69' name='uport' filepath='drivers/tty/serial/serial_core.c' line='3115' column='1'/>
-        <parameter type-id='f0981eeb' name='status' filepath='drivers/tty/serial/serial_core.c' line='3115' column='1'/>
+      <function-decl name='uart_handle_dcd_change' mangled-name='uart_handle_dcd_change' filepath='drivers/tty/serial/serial_core.c' line='3116' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uart_handle_dcd_change'>
+        <parameter type-id='af051c69' name='uport' filepath='drivers/tty/serial/serial_core.c' line='3116' column='1'/>
+        <parameter type-id='f0981eeb' name='status' filepath='drivers/tty/serial/serial_core.c' line='3116' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='uart_insert_char' mangled-name='uart_insert_char' filepath='drivers/tty/serial/serial_core.c' line='3186' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uart_insert_char'>
-        <parameter type-id='af051c69' name='port' filepath='drivers/tty/serial/serial_core.c' line='3186' column='1'/>
-        <parameter type-id='f0981eeb' name='status' filepath='drivers/tty/serial/serial_core.c' line='3186' column='1'/>
-        <parameter type-id='f0981eeb' name='overrun' filepath='drivers/tty/serial/serial_core.c' line='3187' column='1'/>
-        <parameter type-id='f0981eeb' name='ch' filepath='drivers/tty/serial/serial_core.c' line='3187' column='1'/>
-        <parameter type-id='f0981eeb' name='flag' filepath='drivers/tty/serial/serial_core.c' line='3187' column='1'/>
+      <function-decl name='uart_insert_char' mangled-name='uart_insert_char' filepath='drivers/tty/serial/serial_core.c' line='3187' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uart_insert_char'>
+        <parameter type-id='af051c69' name='port' filepath='drivers/tty/serial/serial_core.c' line='3187' column='1'/>
+        <parameter type-id='f0981eeb' name='status' filepath='drivers/tty/serial/serial_core.c' line='3187' column='1'/>
+        <parameter type-id='f0981eeb' name='overrun' filepath='drivers/tty/serial/serial_core.c' line='3188' column='1'/>
+        <parameter type-id='f0981eeb' name='ch' filepath='drivers/tty/serial/serial_core.c' line='3188' column='1'/>
+        <parameter type-id='f0981eeb' name='flag' filepath='drivers/tty/serial/serial_core.c' line='3188' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
       <function-decl name='uart_parse_options' mangled-name='uart_parse_options' filepath='drivers/tty/serial/serial_core.c' line='2073' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uart_parse_options'>
@@ -158276,18 +158888,18 @@
         <parameter type-id='7292109c' name='flow' filepath='drivers/tty/serial/serial_core.c' line='2074' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='uart_register_driver' mangled-name='uart_register_driver' filepath='drivers/tty/serial/serial_core.c' line='2583' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uart_register_driver'>
-        <parameter type-id='04a219de' name='drv' filepath='drivers/tty/serial/serial_core.c' line='2583' column='1'/>
+      <function-decl name='uart_register_driver' mangled-name='uart_register_driver' filepath='drivers/tty/serial/serial_core.c' line='2584' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uart_register_driver'>
+        <parameter type-id='04a219de' name='drv' filepath='drivers/tty/serial/serial_core.c' line='2584' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='uart_remove_one_port' mangled-name='uart_remove_one_port' filepath='drivers/tty/serial/serial_core.c' line='3011' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uart_remove_one_port'>
-        <parameter type-id='04a219de' name='drv' filepath='drivers/tty/serial/serial_core.c' line='3011' column='1'/>
-        <parameter type-id='af051c69' name='uport' filepath='drivers/tty/serial/serial_core.c' line='3011' column='1'/>
+      <function-decl name='uart_remove_one_port' mangled-name='uart_remove_one_port' filepath='drivers/tty/serial/serial_core.c' line='3012' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uart_remove_one_port'>
+        <parameter type-id='04a219de' name='drv' filepath='drivers/tty/serial/serial_core.c' line='3012' column='1'/>
+        <parameter type-id='af051c69' name='uport' filepath='drivers/tty/serial/serial_core.c' line='3012' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='uart_resume_port' mangled-name='uart_resume_port' filepath='drivers/tty/serial/serial_core.c' line='2257' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uart_resume_port'>
-        <parameter type-id='04a219de' name='drv' filepath='drivers/tty/serial/serial_core.c' line='2257' column='1'/>
-        <parameter type-id='af051c69' name='uport' filepath='drivers/tty/serial/serial_core.c' line='2257' column='1'/>
+      <function-decl name='uart_resume_port' mangled-name='uart_resume_port' filepath='drivers/tty/serial/serial_core.c' line='2258' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uart_resume_port'>
+        <parameter type-id='04a219de' name='drv' filepath='drivers/tty/serial/serial_core.c' line='2258' column='1'/>
+        <parameter type-id='af051c69' name='uport' filepath='drivers/tty/serial/serial_core.c' line='2258' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
       <function-decl name='uart_set_options' mangled-name='uart_set_options' filepath='drivers/tty/serial/serial_core.c' line='2100' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uart_set_options'>
@@ -158304,13 +158916,13 @@
         <parameter type-id='af051c69' name='uport' filepath='drivers/tty/serial/serial_core.c' line='2195' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='uart_try_toggle_sysrq' mangled-name='uart_try_toggle_sysrq' filepath='drivers/tty/serial/serial_core.c' line='3229' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uart_try_toggle_sysrq'>
-        <parameter type-id='af051c69' name='port' filepath='drivers/tty/serial/serial_core.c' line='3229' column='1'/>
-        <parameter type-id='f0981eeb' name='ch' filepath='drivers/tty/serial/serial_core.c' line='3229' column='1'/>
+      <function-decl name='uart_try_toggle_sysrq' mangled-name='uart_try_toggle_sysrq' filepath='drivers/tty/serial/serial_core.c' line='3230' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uart_try_toggle_sysrq'>
+        <parameter type-id='af051c69' name='port' filepath='drivers/tty/serial/serial_core.c' line='3230' column='1'/>
+        <parameter type-id='f0981eeb' name='ch' filepath='drivers/tty/serial/serial_core.c' line='3230' column='1'/>
         <return type-id='b50a4934'/>
       </function-decl>
-      <function-decl name='uart_unregister_driver' mangled-name='uart_unregister_driver' filepath='drivers/tty/serial/serial_core.c' line='2652' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uart_unregister_driver'>
-        <parameter type-id='04a219de' name='drv' filepath='drivers/tty/serial/serial_core.c' line='2652' column='1'/>
+      <function-decl name='uart_unregister_driver' mangled-name='uart_unregister_driver' filepath='drivers/tty/serial/serial_core.c' line='2653' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uart_unregister_driver'>
+        <parameter type-id='04a219de' name='drv' filepath='drivers/tty/serial/serial_core.c' line='2653' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
       <function-decl name='uart_update_timeout' mangled-name='uart_update_timeout' filepath='drivers/tty/serial/serial_core.c' line='333' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uart_update_timeout'>
@@ -158323,9 +158935,9 @@
         <parameter type-id='af051c69' name='port' filepath='drivers/tty/serial/serial_core.c' line='103' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='uclamp_eff_value' mangled-name='uclamp_eff_value' filepath='kernel/sched/core.c' line='1507' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uclamp_eff_value'>
-        <parameter type-id='f23e2572' name='p' filepath='kernel/sched/core.c' line='1507' column='1'/>
-        <parameter type-id='db819146' name='clamp_id' filepath='kernel/sched/core.c' line='1507' column='1'/>
+      <function-decl name='uclamp_eff_value' mangled-name='uclamp_eff_value' filepath='kernel/sched/core.c' line='1504' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uclamp_eff_value'>
+        <parameter type-id='f23e2572' name='p' filepath='kernel/sched/core.c' line='1504' column='1'/>
+        <parameter type-id='db819146' name='clamp_id' filepath='kernel/sched/core.c' line='1504' column='1'/>
         <return type-id='7359adad'/>
       </function-decl>
       <function-decl name='ucsi_connector_change' mangled-name='ucsi_connector_change' filepath='drivers/usb/typec/ucsi/ucsi.c' line='848' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ucsi_connector_change'>
@@ -158379,36 +158991,36 @@
         <parameter type-id='b5952621' name='str_t' filepath='drivers/scsi/ufs/ufshcd.c' line='379' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='ufshcd_alloc_host' mangled-name='ufshcd_alloc_host' filepath='drivers/scsi/ufs/ufshcd.c' line='9496' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_alloc_host'>
-        <parameter type-id='fa0b179b' name='dev' filepath='drivers/scsi/ufs/ufshcd.c' line='9496' column='1'/>
-        <parameter type-id='f38ff799' name='hba_handle' filepath='drivers/scsi/ufs/ufshcd.c' line='9496' column='1'/>
+      <function-decl name='ufshcd_alloc_host' mangled-name='ufshcd_alloc_host' filepath='drivers/scsi/ufs/ufshcd.c' line='9586' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_alloc_host'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/scsi/ufs/ufshcd.c' line='9586' column='1'/>
+        <parameter type-id='f38ff799' name='hba_handle' filepath='drivers/scsi/ufs/ufshcd.c' line='9586' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='ufshcd_auto_hibern8_update' mangled-name='ufshcd_auto_hibern8_update' filepath='drivers/scsi/ufs/ufshcd.c' line='4224' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_auto_hibern8_update'>
-        <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='4224' column='1'/>
-        <parameter type-id='19c2251e' name='ahit' filepath='drivers/scsi/ufs/ufshcd.c' line='4224' column='1'/>
+      <function-decl name='ufshcd_auto_hibern8_update' mangled-name='ufshcd_auto_hibern8_update' filepath='drivers/scsi/ufs/ufshcd.c' line='4237' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_auto_hibern8_update'>
+        <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='4237' column='1'/>
+        <parameter type-id='19c2251e' name='ahit' filepath='drivers/scsi/ufs/ufshcd.c' line='4237' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='ufshcd_bkops_ctrl' mangled-name='ufshcd_bkops_ctrl' filepath='drivers/scsi/ufs/ufshcd.c' line='5635' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_bkops_ctrl'>
-        <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='5635' column='1'/>
-        <parameter type-id='462d2624' name='status' filepath='drivers/scsi/ufs/ufshcd.c' line='5636' column='1'/>
+      <function-decl name='ufshcd_bkops_ctrl' mangled-name='ufshcd_bkops_ctrl' filepath='drivers/scsi/ufs/ufshcd.c' line='5648' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_bkops_ctrl'>
+        <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='5648' column='1'/>
+        <parameter type-id='462d2624' name='status' filepath='drivers/scsi/ufs/ufshcd.c' line='5649' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='ufshcd_clk_scaling_start_busy' mangled-name='ufshcd_clk_scaling_start_busy' filepath='drivers/scsi/ufs/ufshcd.c' line='2013' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_clk_scaling_start_busy'>
-        <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='2013' column='1'/>
+      <function-decl name='ufshcd_clk_scaling_start_busy' mangled-name='ufshcd_clk_scaling_start_busy' filepath='drivers/scsi/ufs/ufshcd.c' line='2017' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_clk_scaling_start_busy'>
+        <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='2017' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='ufshcd_clk_scaling_update_busy' mangled-name='ufshcd_clk_scaling_update_busy' filepath='drivers/scsi/ufs/ufshcd.c' line='2049' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_clk_scaling_update_busy'>
-        <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='2049' column='1'/>
+      <function-decl name='ufshcd_clk_scaling_update_busy' mangled-name='ufshcd_clk_scaling_update_busy' filepath='drivers/scsi/ufs/ufshcd.c' line='2053' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_clk_scaling_update_busy'>
+        <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='2053' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='ufshcd_config_pwr_mode' mangled-name='ufshcd_config_pwr_mode' filepath='drivers/scsi/ufs/ufshcd.c' line='4434' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_config_pwr_mode'>
-        <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='4434' column='1'/>
-        <parameter type-id='35f4156d' name='desired_pwr_mode' filepath='drivers/scsi/ufs/ufshcd.c' line='4435' column='1'/>
+      <function-decl name='ufshcd_config_pwr_mode' mangled-name='ufshcd_config_pwr_mode' filepath='drivers/scsi/ufs/ufshcd.c' line='4447' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_config_pwr_mode'>
+        <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='4447' column='1'/>
+        <parameter type-id='35f4156d' name='desired_pwr_mode' filepath='drivers/scsi/ufs/ufshcd.c' line='4448' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='ufshcd_dealloc_host' mangled-name='ufshcd_dealloc_host' filepath='drivers/scsi/ufs/ufshcd.c' line='9468' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_dealloc_host'>
-        <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='9468' column='1'/>
+      <function-decl name='ufshcd_dealloc_host' mangled-name='ufshcd_dealloc_host' filepath='drivers/scsi/ufs/ufshcd.c' line='9558' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_dealloc_host'>
+        <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='9558' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
       <function-decl name='ufshcd_delay_us' mangled-name='ufshcd_delay_us' filepath='drivers/scsi/ufs/ufshcd.c' line='632' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_delay_us'>
@@ -158416,25 +159028,25 @@
         <parameter type-id='7359adad' name='tolerance' filepath='drivers/scsi/ufs/ufshcd.c' line='632' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='ufshcd_dme_configure_adapt' mangled-name='ufshcd_dme_configure_adapt' filepath='drivers/scsi/ufs/ufshcd.c' line='3822' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_dme_configure_adapt'>
-        <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='3822' column='1'/>
-        <parameter type-id='95e97e5e' name='agreed_gear' filepath='drivers/scsi/ufs/ufshcd.c' line='3823' column='1'/>
-        <parameter type-id='95e97e5e' name='adapt_val' filepath='drivers/scsi/ufs/ufshcd.c' line='3824' column='1'/>
+      <function-decl name='ufshcd_dme_configure_adapt' mangled-name='ufshcd_dme_configure_adapt' filepath='drivers/scsi/ufs/ufshcd.c' line='3835' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_dme_configure_adapt'>
+        <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='3835' column='1'/>
+        <parameter type-id='95e97e5e' name='agreed_gear' filepath='drivers/scsi/ufs/ufshcd.c' line='3836' column='1'/>
+        <parameter type-id='95e97e5e' name='adapt_val' filepath='drivers/scsi/ufs/ufshcd.c' line='3837' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='ufshcd_dme_get_attr' mangled-name='ufshcd_dme_get_attr' filepath='drivers/scsi/ufs/ufshcd.c' line='3946' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_dme_get_attr'>
-        <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='3946' column='1'/>
-        <parameter type-id='19c2251e' name='attr_sel' filepath='drivers/scsi/ufs/ufshcd.c' line='3946' column='1'/>
-        <parameter type-id='f9409001' name='mib_val' filepath='drivers/scsi/ufs/ufshcd.c' line='3947' column='1'/>
-        <parameter type-id='f9b06939' name='peer' filepath='drivers/scsi/ufs/ufshcd.c' line='3947' column='1'/>
+      <function-decl name='ufshcd_dme_get_attr' mangled-name='ufshcd_dme_get_attr' filepath='drivers/scsi/ufs/ufshcd.c' line='3959' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_dme_get_attr'>
+        <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='3959' column='1'/>
+        <parameter type-id='19c2251e' name='attr_sel' filepath='drivers/scsi/ufs/ufshcd.c' line='3959' column='1'/>
+        <parameter type-id='f9409001' name='mib_val' filepath='drivers/scsi/ufs/ufshcd.c' line='3960' column='1'/>
+        <parameter type-id='f9b06939' name='peer' filepath='drivers/scsi/ufs/ufshcd.c' line='3960' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='ufshcd_dme_set_attr' mangled-name='ufshcd_dme_set_attr' filepath='drivers/scsi/ufs/ufshcd.c' line='3902' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_dme_set_attr'>
-        <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='3902' column='1'/>
-        <parameter type-id='19c2251e' name='attr_sel' filepath='drivers/scsi/ufs/ufshcd.c' line='3902' column='1'/>
-        <parameter type-id='f9b06939' name='attr_set' filepath='drivers/scsi/ufs/ufshcd.c' line='3903' column='1'/>
-        <parameter type-id='19c2251e' name='mib_val' filepath='drivers/scsi/ufs/ufshcd.c' line='3903' column='1'/>
-        <parameter type-id='f9b06939' name='peer' filepath='drivers/scsi/ufs/ufshcd.c' line='3903' column='1'/>
+      <function-decl name='ufshcd_dme_set_attr' mangled-name='ufshcd_dme_set_attr' filepath='drivers/scsi/ufs/ufshcd.c' line='3915' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_dme_set_attr'>
+        <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='3915' column='1'/>
+        <parameter type-id='19c2251e' name='attr_sel' filepath='drivers/scsi/ufs/ufshcd.c' line='3915' column='1'/>
+        <parameter type-id='f9b06939' name='attr_set' filepath='drivers/scsi/ufs/ufshcd.c' line='3916' column='1'/>
+        <parameter type-id='19c2251e' name='mib_val' filepath='drivers/scsi/ufs/ufshcd.c' line='3916' column='1'/>
+        <parameter type-id='f9b06939' name='peer' filepath='drivers/scsi/ufs/ufshcd.c' line='3916' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
       <function-decl name='ufshcd_dump_regs' mangled-name='ufshcd_dump_regs' filepath='drivers/scsi/ufs/ufshcd.c' line='105' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_dump_regs'>
@@ -158444,9 +159056,9 @@
         <parameter type-id='80f4b756' name='prefix' filepath='drivers/scsi/ufs/ufshcd.c' line='106' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='ufshcd_fixup_dev_quirks' mangled-name='ufshcd_fixup_dev_quirks' filepath='drivers/scsi/ufs/ufshcd.c' line='7606' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_fixup_dev_quirks'>
-        <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='7606' column='1'/>
-        <parameter type-id='c5251c27' name='fixups' filepath='drivers/scsi/ufs/ufshcd.c' line='7606' column='1'/>
+      <function-decl name='ufshcd_fixup_dev_quirks' mangled-name='ufshcd_fixup_dev_quirks' filepath='drivers/scsi/ufs/ufshcd.c' line='7626' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_fixup_dev_quirks'>
+        <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='7626' column='1'/>
+        <parameter type-id='c5251c27' name='fixups' filepath='drivers/scsi/ufs/ufshcd.c' line='7626' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
       <function-decl name='ufshcd_get_local_unipro_ver' mangled-name='ufshcd_get_local_unipro_ver' filepath='drivers/scsi/ufs/ufshcd.c' line='936' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_get_local_unipro_ver'>
@@ -158459,40 +159071,40 @@
         <parameter type-id='35f4156d' name='agreed_pwr' filepath='drivers/scsi/ufs/ufshcd-pltfrm.c' line='224' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='ufshcd_get_vreg' mangled-name='ufshcd_get_vreg' filepath='drivers/scsi/ufs/ufshcd.c' line='8393' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_get_vreg'>
-        <parameter type-id='fa0b179b' name='dev' filepath='drivers/scsi/ufs/ufshcd.c' line='8393' column='1'/>
-        <parameter type-id='ae670bfa' name='vreg' filepath='drivers/scsi/ufs/ufshcd.c' line='8393' column='1'/>
+      <function-decl name='ufshcd_get_vreg' mangled-name='ufshcd_get_vreg' filepath='drivers/scsi/ufs/ufshcd.c' line='8413' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_get_vreg'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/scsi/ufs/ufshcd.c' line='8413' column='1'/>
+        <parameter type-id='ae670bfa' name='vreg' filepath='drivers/scsi/ufs/ufshcd.c' line='8413' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='ufshcd_hba_enable' mangled-name='ufshcd_hba_enable' filepath='drivers/scsi/ufs/ufshcd.c' line='4650' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_hba_enable'>
-        <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='4650' column='1'/>
+      <function-decl name='ufshcd_hba_enable' mangled-name='ufshcd_hba_enable' filepath='drivers/scsi/ufs/ufshcd.c' line='4663' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_hba_enable'>
+        <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='4663' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='ufshcd_hba_stop' mangled-name='ufshcd_hba_stop' filepath='drivers/scsi/ufs/ufshcd.c' line='4564' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_hba_stop'>
-        <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='4564' column='1'/>
+      <function-decl name='ufshcd_hba_stop' mangled-name='ufshcd_hba_stop' filepath='drivers/scsi/ufs/ufshcd.c' line='4577' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_hba_stop'>
+        <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='4577' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='ufshcd_hold' mangled-name='ufshcd_hold' filepath='drivers/scsi/ufs/ufshcd.c' line='1699' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_hold'>
-        <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='1699' column='1'/>
-        <parameter type-id='b50a4934' name='async' filepath='drivers/scsi/ufs/ufshcd.c' line='1699' column='1'/>
+      <function-decl name='ufshcd_hold' mangled-name='ufshcd_hold' filepath='drivers/scsi/ufs/ufshcd.c' line='1703' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_hold'>
+        <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='1703' column='1'/>
+        <parameter type-id='b50a4934' name='async' filepath='drivers/scsi/ufs/ufshcd.c' line='1703' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
       <function-decl name='ufshcd_init_pwr_dev_param' mangled-name='ufshcd_init_pwr_dev_param' filepath='drivers/scsi/ufs/ufshcd-pltfrm.c' line='310' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_init_pwr_dev_param'>
         <parameter type-id='9c02cf50' name='dev_param' filepath='drivers/scsi/ufs/ufshcd-pltfrm.c' line='310' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='ufshcd_link_recovery' mangled-name='ufshcd_link_recovery' filepath='drivers/scsi/ufs/ufshcd.c' line='4144' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_link_recovery'>
-        <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='4144' column='1'/>
+      <function-decl name='ufshcd_link_recovery' mangled-name='ufshcd_link_recovery' filepath='drivers/scsi/ufs/ufshcd.c' line='4157' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_link_recovery'>
+        <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='4157' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='ufshcd_make_hba_operational' mangled-name='ufshcd_make_hba_operational' filepath='drivers/scsi/ufs/ufshcd.c' line='4509' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_make_hba_operational'>
-        <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='4509' column='1'/>
+      <function-decl name='ufshcd_make_hba_operational' mangled-name='ufshcd_make_hba_operational' filepath='drivers/scsi/ufs/ufshcd.c' line='4522' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_make_hba_operational'>
+        <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='4522' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='ufshcd_map_desc_id_to_length' mangled-name='ufshcd_map_desc_id_to_length' filepath='drivers/scsi/ufs/ufshcd.c' line='3356' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_map_desc_id_to_length'>
-        <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='3356' column='1'/>
-        <parameter type-id='32c9d5cb' name='desc_id' filepath='drivers/scsi/ufs/ufshcd.c' line='3356' column='1'/>
-        <parameter type-id='7292109c' name='desc_len' filepath='drivers/scsi/ufs/ufshcd.c' line='3357' column='1'/>
+      <function-decl name='ufshcd_map_desc_id_to_length' mangled-name='ufshcd_map_desc_id_to_length' filepath='drivers/scsi/ufs/ufshcd.c' line='3369' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_map_desc_id_to_length'>
+        <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='3369' column='1'/>
+        <parameter type-id='32c9d5cb' name='desc_id' filepath='drivers/scsi/ufs/ufshcd.c' line='3369' column='1'/>
+        <parameter type-id='7292109c' name='desc_len' filepath='drivers/scsi/ufs/ufshcd.c' line='3370' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
       <function-decl name='ufshcd_pltfrm_init' mangled-name='ufshcd_pltfrm_init' filepath='drivers/scsi/ufs/ufshcd-pltfrm.c' line='334' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_pltfrm_init'>
@@ -158510,117 +159122,129 @@
         <parameter type-id='5c379870' name='out_vreg' filepath='drivers/scsi/ufs/ufshcd-pltfrm.c' line='123' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='ufshcd_query_attr' mangled-name='ufshcd_query_attr' filepath='drivers/scsi/ufs/ufshcd.c' line='3163' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_query_attr'>
-        <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='3163' column='1'/>
-        <parameter type-id='5f757f13' name='opcode' filepath='drivers/scsi/ufs/ufshcd.c' line='3163' column='1'/>
-        <parameter type-id='75eb1735' name='idn' filepath='drivers/scsi/ufs/ufshcd.c' line='3164' column='1'/>
-        <parameter type-id='f9b06939' name='index' filepath='drivers/scsi/ufs/ufshcd.c' line='3164' column='1'/>
-        <parameter type-id='f9b06939' name='selector' filepath='drivers/scsi/ufs/ufshcd.c' line='3164' column='1'/>
-        <parameter type-id='f9409001' name='attr_val' filepath='drivers/scsi/ufs/ufshcd.c' line='3164' column='1'/>
+      <function-decl name='ufshcd_query_attr' mangled-name='ufshcd_query_attr' filepath='drivers/scsi/ufs/ufshcd.c' line='3176' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_query_attr'>
+        <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='3176' column='1'/>
+        <parameter type-id='5f757f13' name='opcode' filepath='drivers/scsi/ufs/ufshcd.c' line='3176' column='1'/>
+        <parameter type-id='75eb1735' name='idn' filepath='drivers/scsi/ufs/ufshcd.c' line='3177' column='1'/>
+        <parameter type-id='f9b06939' name='index' filepath='drivers/scsi/ufs/ufshcd.c' line='3177' column='1'/>
+        <parameter type-id='f9b06939' name='selector' filepath='drivers/scsi/ufs/ufshcd.c' line='3177' column='1'/>
+        <parameter type-id='f9409001' name='attr_val' filepath='drivers/scsi/ufs/ufshcd.c' line='3177' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='ufshcd_query_attr_retry' mangled-name='ufshcd_query_attr_retry' filepath='drivers/scsi/ufs/ufshcd.c' line='3229' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_query_attr_retry'>
-        <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='3229' column='1'/>
-        <parameter type-id='5f757f13' name='opcode' filepath='drivers/scsi/ufs/ufshcd.c' line='3230' column='1'/>
-        <parameter type-id='75eb1735' name='idn' filepath='drivers/scsi/ufs/ufshcd.c' line='3230' column='1'/>
-        <parameter type-id='f9b06939' name='index' filepath='drivers/scsi/ufs/ufshcd.c' line='3230' column='1'/>
-        <parameter type-id='f9b06939' name='selector' filepath='drivers/scsi/ufs/ufshcd.c' line='3230' column='1'/>
-        <parameter type-id='f9409001' name='attr_val' filepath='drivers/scsi/ufs/ufshcd.c' line='3231' column='1'/>
+      <function-decl name='ufshcd_query_attr_retry' mangled-name='ufshcd_query_attr_retry' filepath='drivers/scsi/ufs/ufshcd.c' line='3242' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_query_attr_retry'>
+        <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='3242' column='1'/>
+        <parameter type-id='5f757f13' name='opcode' filepath='drivers/scsi/ufs/ufshcd.c' line='3243' column='1'/>
+        <parameter type-id='75eb1735' name='idn' filepath='drivers/scsi/ufs/ufshcd.c' line='3243' column='1'/>
+        <parameter type-id='f9b06939' name='index' filepath='drivers/scsi/ufs/ufshcd.c' line='3243' column='1'/>
+        <parameter type-id='f9b06939' name='selector' filepath='drivers/scsi/ufs/ufshcd.c' line='3243' column='1'/>
+        <parameter type-id='f9409001' name='attr_val' filepath='drivers/scsi/ufs/ufshcd.c' line='3244' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='ufshcd_query_descriptor_retry' mangled-name='ufshcd_query_descriptor_retry' filepath='drivers/scsi/ufs/ufshcd.c' line='3330' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_query_descriptor_retry'>
-        <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='3330' column='1'/>
-        <parameter type-id='5f757f13' name='opcode' filepath='drivers/scsi/ufs/ufshcd.c' line='3331' column='1'/>
-        <parameter type-id='32c9d5cb' name='idn' filepath='drivers/scsi/ufs/ufshcd.c' line='3332' column='1'/>
-        <parameter type-id='f9b06939' name='index' filepath='drivers/scsi/ufs/ufshcd.c' line='3332' column='1'/>
-        <parameter type-id='f9b06939' name='selector' filepath='drivers/scsi/ufs/ufshcd.c' line='3333' column='1'/>
-        <parameter type-id='8bff8096' name='desc_buf' filepath='drivers/scsi/ufs/ufshcd.c' line='3334' column='1'/>
-        <parameter type-id='7292109c' name='buf_len' filepath='drivers/scsi/ufs/ufshcd.c' line='3334' column='1'/>
+      <function-decl name='ufshcd_query_descriptor_retry' mangled-name='ufshcd_query_descriptor_retry' filepath='drivers/scsi/ufs/ufshcd.c' line='3343' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_query_descriptor_retry'>
+        <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='3343' column='1'/>
+        <parameter type-id='5f757f13' name='opcode' filepath='drivers/scsi/ufs/ufshcd.c' line='3344' column='1'/>
+        <parameter type-id='32c9d5cb' name='idn' filepath='drivers/scsi/ufs/ufshcd.c' line='3345' column='1'/>
+        <parameter type-id='f9b06939' name='index' filepath='drivers/scsi/ufs/ufshcd.c' line='3345' column='1'/>
+        <parameter type-id='f9b06939' name='selector' filepath='drivers/scsi/ufs/ufshcd.c' line='3346' column='1'/>
+        <parameter type-id='8bff8096' name='desc_buf' filepath='drivers/scsi/ufs/ufshcd.c' line='3347' column='1'/>
+        <parameter type-id='7292109c' name='buf_len' filepath='drivers/scsi/ufs/ufshcd.c' line='3347' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='ufshcd_query_flag' mangled-name='ufshcd_query_flag' filepath='drivers/scsi/ufs/ufshcd.c' line='3093' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_query_flag'>
-        <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='3093' column='1'/>
-        <parameter type-id='5f757f13' name='opcode' filepath='drivers/scsi/ufs/ufshcd.c' line='3093' column='1'/>
-        <parameter type-id='92ace17c' name='idn' filepath='drivers/scsi/ufs/ufshcd.c' line='3094' column='1'/>
-        <parameter type-id='f9b06939' name='index' filepath='drivers/scsi/ufs/ufshcd.c' line='3094' column='1'/>
-        <parameter type-id='d8e6b335' name='flag_res' filepath='drivers/scsi/ufs/ufshcd.c' line='3094' column='1'/>
+      <function-decl name='ufshcd_query_flag' mangled-name='ufshcd_query_flag' filepath='drivers/scsi/ufs/ufshcd.c' line='3106' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_query_flag'>
+        <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='3106' column='1'/>
+        <parameter type-id='5f757f13' name='opcode' filepath='drivers/scsi/ufs/ufshcd.c' line='3106' column='1'/>
+        <parameter type-id='92ace17c' name='idn' filepath='drivers/scsi/ufs/ufshcd.c' line='3107' column='1'/>
+        <parameter type-id='f9b06939' name='index' filepath='drivers/scsi/ufs/ufshcd.c' line='3107' column='1'/>
+        <parameter type-id='d8e6b335' name='flag_res' filepath='drivers/scsi/ufs/ufshcd.c' line='3107' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='ufshcd_query_flag_retry' mangled-name='ufshcd_query_flag_retry' filepath='drivers/scsi/ufs/ufshcd.c' line='3059' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_query_flag_retry'>
-        <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='3059' column='1'/>
-        <parameter type-id='5f757f13' name='opcode' filepath='drivers/scsi/ufs/ufshcd.c' line='3060' column='1'/>
-        <parameter type-id='92ace17c' name='idn' filepath='drivers/scsi/ufs/ufshcd.c' line='3060' column='1'/>
-        <parameter type-id='f9b06939' name='index' filepath='drivers/scsi/ufs/ufshcd.c' line='3060' column='1'/>
-        <parameter type-id='d8e6b335' name='flag_res' filepath='drivers/scsi/ufs/ufshcd.c' line='3060' column='1'/>
+      <function-decl name='ufshcd_query_flag_retry' mangled-name='ufshcd_query_flag_retry' filepath='drivers/scsi/ufs/ufshcd.c' line='3072' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_query_flag_retry'>
+        <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='3072' column='1'/>
+        <parameter type-id='5f757f13' name='opcode' filepath='drivers/scsi/ufs/ufshcd.c' line='3073' column='1'/>
+        <parameter type-id='92ace17c' name='idn' filepath='drivers/scsi/ufs/ufshcd.c' line='3073' column='1'/>
+        <parameter type-id='f9b06939' name='index' filepath='drivers/scsi/ufs/ufshcd.c' line='3073' column='1'/>
+        <parameter type-id='d8e6b335' name='flag_res' filepath='drivers/scsi/ufs/ufshcd.c' line='3073' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='ufshcd_read_desc_param' mangled-name='ufshcd_read_desc_param' filepath='drivers/scsi/ufs/ufshcd.c' line='3392' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_read_desc_param'>
-        <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='3392' column='1'/>
-        <parameter type-id='32c9d5cb' name='desc_id' filepath='drivers/scsi/ufs/ufshcd.c' line='3393' column='1'/>
-        <parameter type-id='95e97e5e' name='desc_index' filepath='drivers/scsi/ufs/ufshcd.c' line='3394' column='1'/>
-        <parameter type-id='f9b06939' name='param_offset' filepath='drivers/scsi/ufs/ufshcd.c' line='3395' column='1'/>
-        <parameter type-id='8bff8096' name='param_read_buf' filepath='drivers/scsi/ufs/ufshcd.c' line='3396' column='1'/>
-        <parameter type-id='f9b06939' name='param_size' filepath='drivers/scsi/ufs/ufshcd.c' line='3397' column='1'/>
+      <function-decl name='ufshcd_read_desc_param' mangled-name='ufshcd_read_desc_param' filepath='drivers/scsi/ufs/ufshcd.c' line='3405' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_read_desc_param'>
+        <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='3405' column='1'/>
+        <parameter type-id='32c9d5cb' name='desc_id' filepath='drivers/scsi/ufs/ufshcd.c' line='3406' column='1'/>
+        <parameter type-id='95e97e5e' name='desc_index' filepath='drivers/scsi/ufs/ufshcd.c' line='3407' column='1'/>
+        <parameter type-id='f9b06939' name='param_offset' filepath='drivers/scsi/ufs/ufshcd.c' line='3408' column='1'/>
+        <parameter type-id='8bff8096' name='param_read_buf' filepath='drivers/scsi/ufs/ufshcd.c' line='3409' column='1'/>
+        <parameter type-id='f9b06939' name='param_size' filepath='drivers/scsi/ufs/ufshcd.c' line='3410' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='ufshcd_release' mangled-name='ufshcd_release' filepath='drivers/scsi/ufs/ufshcd.c' line='1878' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_release'>
-        <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='1878' column='1'/>
+      <function-decl name='ufshcd_release' mangled-name='ufshcd_release' filepath='drivers/scsi/ufs/ufshcd.c' line='1882' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_release'>
+        <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='1882' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='ufshcd_remove' mangled-name='ufshcd_remove' filepath='drivers/scsi/ufs/ufshcd.c' line='9445' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_remove'>
-        <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='9445' column='1'/>
+      <function-decl name='ufshcd_remove' mangled-name='ufshcd_remove' filepath='drivers/scsi/ufs/ufshcd.c' line='9485' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_remove'>
+        <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='9485' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='ufshcd_resume_complete' mangled-name='ufshcd_resume_complete' filepath='drivers/scsi/ufs/ufshcd.c' line='9777' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_resume_complete'>
-        <parameter type-id='fa0b179b' name='dev' filepath='drivers/scsi/ufs/ufshcd.c' line='9777' column='1'/>
+      <function-decl name='ufshcd_resume_complete' mangled-name='ufshcd_resume_complete' filepath='drivers/scsi/ufs/ufshcd.c' line='9867' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_resume_complete'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/scsi/ufs/ufshcd.c' line='9867' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='ufshcd_runtime_resume' mangled-name='ufshcd_runtime_resume' filepath='drivers/scsi/ufs/ufshcd.c' line='9404' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_runtime_resume'>
-        <parameter type-id='fa0b179b' name='dev' filepath='drivers/scsi/ufs/ufshcd.c' line='9404' column='1'/>
+      <function-decl name='ufshcd_runtime_resume' mangled-name='ufshcd_runtime_resume' filepath='drivers/scsi/ufs/ufshcd.c' line='9444' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_runtime_resume'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/scsi/ufs/ufshcd.c' line='9444' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='ufshcd_runtime_suspend' mangled-name='ufshcd_runtime_suspend' filepath='drivers/scsi/ufs/ufshcd.c' line='9379' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_runtime_suspend'>
-        <parameter type-id='fa0b179b' name='dev' filepath='drivers/scsi/ufs/ufshcd.c' line='9379' column='1'/>
+      <function-decl name='ufshcd_runtime_suspend' mangled-name='ufshcd_runtime_suspend' filepath='drivers/scsi/ufs/ufshcd.c' line='9419' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_runtime_suspend'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/scsi/ufs/ufshcd.c' line='9419' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='ufshcd_shutdown' mangled-name='ufshcd_shutdown' filepath='drivers/scsi/ufs/ufshcd.c' line='9429' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_shutdown'>
-        <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='9429' column='1'/>
+      <function-decl name='ufshcd_shutdown' mangled-name='ufshcd_shutdown' filepath='drivers/scsi/ufs/ufshcd.c' line='9469' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_shutdown'>
+        <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='9469' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='ufshcd_suspend_prepare' mangled-name='ufshcd_suspend_prepare' filepath='drivers/scsi/ufs/ufshcd.c' line='9788' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_suspend_prepare'>
-        <parameter type-id='fa0b179b' name='dev' filepath='drivers/scsi/ufs/ufshcd.c' line='9788' column='1'/>
+      <function-decl name='ufshcd_suspend_prepare' mangled-name='ufshcd_suspend_prepare' filepath='drivers/scsi/ufs/ufshcd.c' line='9878' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_suspend_prepare'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/scsi/ufs/ufshcd.c' line='9878' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='ufshcd_system_resume' mangled-name='ufshcd_system_resume' filepath='drivers/scsi/ufs/ufshcd.c' line='9349' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_system_resume'>
-        <parameter type-id='fa0b179b' name='dev' filepath='drivers/scsi/ufs/ufshcd.c' line='9349' column='1'/>
+      <function-decl name='ufshcd_system_freeze' mangled-name='ufshcd_system_freeze' filepath='drivers/scsi/ufs/ufshcd.c' line='9505' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_system_freeze'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/scsi/ufs/ufshcd.c' line='9505' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='ufshcd_system_suspend' mangled-name='ufshcd_system_suspend' filepath='drivers/scsi/ufs/ufshcd.c' line='9322' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_system_suspend'>
-        <parameter type-id='fa0b179b' name='dev' filepath='drivers/scsi/ufs/ufshcd.c' line='9322' column='1'/>
+      <function-decl name='ufshcd_system_restore' mangled-name='ufshcd_system_restore' filepath='drivers/scsi/ufs/ufshcd.c' line='9513' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_system_restore'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/scsi/ufs/ufshcd.c' line='9513' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='ufshcd_transfer_rsp_status' mangled-name='ufshcd_transfer_rsp_status' filepath='drivers/scsi/ufs/ufshcd.c' line='5174' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_transfer_rsp_status'>
-        <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='5174' column='1'/>
-        <parameter type-id='6ca6fa6d' name='lrbp' filepath='drivers/scsi/ufs/ufshcd.c' line='5174' column='1'/>
+      <function-decl name='ufshcd_system_resume' mangled-name='ufshcd_system_resume' filepath='drivers/scsi/ufs/ufshcd.c' line='9389' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_system_resume'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/scsi/ufs/ufshcd.c' line='9389' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='ufshcd_uic_change_pwr_mode' mangled-name='ufshcd_uic_change_pwr_mode' filepath='drivers/scsi/ufs/ufshcd.c' line='4117' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_uic_change_pwr_mode'>
-        <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='4117' column='1'/>
-        <parameter type-id='f9b06939' name='mode' filepath='drivers/scsi/ufs/ufshcd.c' line='4117' column='1'/>
+      <function-decl name='ufshcd_system_suspend' mangled-name='ufshcd_system_suspend' filepath='drivers/scsi/ufs/ufshcd.c' line='9362' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_system_suspend'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/scsi/ufs/ufshcd.c' line='9362' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='ufshcd_uic_hibern8_enter' mangled-name='ufshcd_uic_hibern8_enter' filepath='drivers/scsi/ufs/ufshcd.c' line='4173' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_uic_hibern8_enter'>
-        <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='4173' column='1'/>
+      <function-decl name='ufshcd_system_thaw' mangled-name='ufshcd_system_thaw' filepath='drivers/scsi/ufs/ufshcd.c' line='9547' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_system_thaw'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/scsi/ufs/ufshcd.c' line='9547' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='ufshcd_uic_hibern8_exit' mangled-name='ufshcd_uic_hibern8_exit' filepath='drivers/scsi/ufs/ufshcd.c' line='4197' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_uic_hibern8_exit'>
-        <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='4197' column='1'/>
+      <function-decl name='ufshcd_transfer_rsp_status' mangled-name='ufshcd_transfer_rsp_status' filepath='drivers/scsi/ufs/ufshcd.c' line='5187' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_transfer_rsp_status'>
+        <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='5187' column='1'/>
+        <parameter type-id='6ca6fa6d' name='lrbp' filepath='drivers/scsi/ufs/ufshcd.c' line='5187' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='ufshcd_update_evt_hist' mangled-name='ufshcd_update_evt_hist' filepath='drivers/scsi/ufs/ufshcd.c' line='4713' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_update_evt_hist'>
-        <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='4713' column='1'/>
-        <parameter type-id='19c2251e' name='id' filepath='drivers/scsi/ufs/ufshcd.c' line='4713' column='1'/>
-        <parameter type-id='19c2251e' name='val' filepath='drivers/scsi/ufs/ufshcd.c' line='4713' column='1'/>
+      <function-decl name='ufshcd_uic_change_pwr_mode' mangled-name='ufshcd_uic_change_pwr_mode' filepath='drivers/scsi/ufs/ufshcd.c' line='4130' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_uic_change_pwr_mode'>
+        <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='4130' column='1'/>
+        <parameter type-id='f9b06939' name='mode' filepath='drivers/scsi/ufs/ufshcd.c' line='4130' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='ufshcd_uic_hibern8_enter' mangled-name='ufshcd_uic_hibern8_enter' filepath='drivers/scsi/ufs/ufshcd.c' line='4186' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_uic_hibern8_enter'>
+        <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='4186' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='ufshcd_uic_hibern8_exit' mangled-name='ufshcd_uic_hibern8_exit' filepath='drivers/scsi/ufs/ufshcd.c' line='4210' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_uic_hibern8_exit'>
+        <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='4210' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='ufshcd_update_evt_hist' mangled-name='ufshcd_update_evt_hist' filepath='drivers/scsi/ufs/ufshcd.c' line='4726' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_update_evt_hist'>
+        <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='4726' column='1'/>
+        <parameter type-id='19c2251e' name='id' filepath='drivers/scsi/ufs/ufshcd.c' line='4726' column='1'/>
+        <parameter type-id='19c2251e' name='val' filepath='drivers/scsi/ufs/ufshcd.c' line='4726' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
       <function-decl name='uio_unregister_device' mangled-name='uio_unregister_device' filepath='drivers/uio/uio.c' line='1042' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uio_unregister_device'>
@@ -158643,11 +159267,11 @@
         <parameter type-id='02f11ed4' name='page' filepath='mm/filemap.c' line='1507' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='unmap_mapping_range' mangled-name='unmap_mapping_range' filepath='mm/memory.c' line='3612' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='unmap_mapping_range'>
-        <parameter type-id='f57039f0' name='mapping' filepath='mm/memory.c' line='3612' column='1'/>
-        <parameter type-id='bf352dfe' name='holebegin' filepath='mm/memory.c' line='3613' column='1'/>
-        <parameter type-id='bf352dfe' name='holelen' filepath='mm/memory.c' line='3613' column='1'/>
-        <parameter type-id='95e97e5e' name='even_cows' filepath='mm/memory.c' line='3613' column='1'/>
+      <function-decl name='unmap_mapping_range' mangled-name='unmap_mapping_range' filepath='mm/memory.c' line='3625' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='unmap_mapping_range'>
+        <parameter type-id='f57039f0' name='mapping' filepath='mm/memory.c' line='3625' column='1'/>
+        <parameter type-id='bf352dfe' name='holebegin' filepath='mm/memory.c' line='3626' column='1'/>
+        <parameter type-id='bf352dfe' name='holelen' filepath='mm/memory.c' line='3626' column='1'/>
+        <parameter type-id='95e97e5e' name='even_cows' filepath='mm/memory.c' line='3626' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
       <function-decl name='unpin_user_page' mangled-name='unpin_user_page' filepath='mm/gup.c' line='251' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='unpin_user_page'>
@@ -158792,8 +159416,8 @@
         <parameter type-id='cbd24a98' name='ops' filepath='drivers/base/syscore.c' line='34' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='unregister_sysctl_table' mangled-name='unregister_sysctl_table' filepath='fs/proc/proc_sysctl.c' line='1662' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='unregister_sysctl_table'>
-        <parameter type-id='11b101bb' name='header' filepath='fs/proc/proc_sysctl.c' line='1662' column='1'/>
+      <function-decl name='unregister_sysctl_table' mangled-name='unregister_sysctl_table' filepath='fs/proc/proc_sysctl.c' line='1695' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='unregister_sysctl_table'>
+        <parameter type-id='11b101bb' name='header' filepath='fs/proc/proc_sysctl.c' line='1695' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
       <function-decl name='unregister_tcf_proto_ops' mangled-name='unregister_tcf_proto_ops' filepath='net/sched/cls_api.c' line='180' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='unregister_tcf_proto_ops'>
@@ -158820,20 +159444,20 @@
         <parameter type-id='a965a5b5' name='sem' filepath='kernel/locking/semaphore.c' line='182' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='up_read' mangled-name='up_read' filepath='kernel/locking/rwsem.c' line='1625' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='up_read'>
-        <parameter type-id='9b58df93' name='sem' filepath='kernel/locking/rwsem.c' line='1625' column='1'/>
+      <function-decl name='up_read' mangled-name='up_read' filepath='kernel/locking/rwsem.c' line='1637' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='up_read'>
+        <parameter type-id='9b58df93' name='sem' filepath='kernel/locking/rwsem.c' line='1637' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='up_write' mangled-name='up_write' filepath='kernel/locking/rwsem.c' line='1635' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='up_write'>
-        <parameter type-id='9b58df93' name='sem' filepath='kernel/locking/rwsem.c' line='1635' column='1'/>
+      <function-decl name='up_write' mangled-name='up_write' filepath='kernel/locking/rwsem.c' line='1647' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='up_write'>
+        <parameter type-id='9b58df93' name='sem' filepath='kernel/locking/rwsem.c' line='1647' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
       <function-decl name='update_devfreq' mangled-name='update_devfreq' filepath='drivers/devfreq/devfreq.c' line='445' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='update_devfreq'>
         <parameter type-id='f66fa7f4' name='devfreq' filepath='drivers/devfreq/devfreq.c' line='445' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='update_rq_clock' mangled-name='update_rq_clock' filepath='kernel/sched/core.c' line='687' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='update_rq_clock'>
-        <parameter type-id='6ed6b432' name='rq' filepath='kernel/sched/core.c' line='687' column='1'/>
+      <function-decl name='update_rq_clock' mangled-name='update_rq_clock' filepath='kernel/sched/core.c' line='684' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='update_rq_clock'>
+        <parameter type-id='6ed6b432' name='rq' filepath='kernel/sched/core.c' line='684' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
       <function-decl name='usb_add_config' mangled-name='usb_add_config' filepath='drivers/usb/gadget/composite.c' line='1013' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_add_config'>
@@ -158967,16 +159591,16 @@
         <parameter type-id='95e97e5e' name='pipe' filepath='drivers/usb/core/message.c' line='1208' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='usb_composite_probe' mangled-name='usb_composite_probe' filepath='drivers/usb/gadget/composite.c' line='2489' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_composite_probe'>
-        <parameter type-id='c64e62ba' name='driver' filepath='drivers/usb/gadget/composite.c' line='2489' column='1'/>
+      <function-decl name='usb_composite_probe' mangled-name='usb_composite_probe' filepath='drivers/usb/gadget/composite.c' line='2493' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_composite_probe'>
+        <parameter type-id='c64e62ba' name='driver' filepath='drivers/usb/gadget/composite.c' line='2493' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='usb_composite_setup_continue' mangled-name='usb_composite_setup_continue' filepath='drivers/usb/gadget/composite.c' line='2533' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_composite_setup_continue'>
-        <parameter type-id='2a895c01' name='cdev' filepath='drivers/usb/gadget/composite.c' line='2533' column='1'/>
+      <function-decl name='usb_composite_setup_continue' mangled-name='usb_composite_setup_continue' filepath='drivers/usb/gadget/composite.c' line='2537' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_composite_setup_continue'>
+        <parameter type-id='2a895c01' name='cdev' filepath='drivers/usb/gadget/composite.c' line='2537' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='usb_composite_unregister' mangled-name='usb_composite_unregister' filepath='drivers/usb/gadget/composite.c' line='2517' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_composite_unregister'>
-        <parameter type-id='c64e62ba' name='driver' filepath='drivers/usb/gadget/composite.c' line='2517' column='1'/>
+      <function-decl name='usb_composite_unregister' mangled-name='usb_composite_unregister' filepath='drivers/usb/gadget/composite.c' line='2521' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_composite_unregister'>
+        <parameter type-id='c64e62ba' name='driver' filepath='drivers/usb/gadget/composite.c' line='2521' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
       <function-decl name='usb_control_msg' mangled-name='usb_control_msg' filepath='drivers/usb/core/message.c' line='136' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_control_msg'>
@@ -159386,13 +160010,13 @@
       </function-decl>
       <var-decl name='usb_hcds_loaded' type-id='7359adad' mangled-name='usb_hcds_loaded' visibility='default' filepath='drivers/usb/core/hcd.c' line='81' column='1' elf-symbol-id='usb_hcds_loaded'/>
       <var-decl name='usb_hid_driver' type-id='0e5e2ca6' mangled-name='usb_hid_driver' visibility='default' filepath='drivers/hid/usbhid/hid-core.c' line='1321' column='1' elf-symbol-id='usb_hid_driver'/>
-      <function-decl name='usb_hub_clear_tt_buffer' mangled-name='usb_hub_clear_tt_buffer' filepath='drivers/usb/core/hub.c' line='866' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_hub_clear_tt_buffer'>
-        <parameter type-id='ab85b8f2' name='urb' filepath='drivers/usb/core/hub.c' line='866' column='1'/>
+      <function-decl name='usb_hub_clear_tt_buffer' mangled-name='usb_hub_clear_tt_buffer' filepath='drivers/usb/core/hub.c' line='869' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_hub_clear_tt_buffer'>
+        <parameter type-id='ab85b8f2' name='urb' filepath='drivers/usb/core/hub.c' line='869' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='usb_hub_find_child' mangled-name='usb_hub_find_child' filepath='drivers/usb/core/hub.c' line='6262' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_hub_find_child'>
-        <parameter type-id='25e60cb2' name='hdev' filepath='drivers/usb/core/hub.c' line='6262' column='1'/>
-        <parameter type-id='95e97e5e' name='port1' filepath='drivers/usb/core/hub.c' line='6263' column='1'/>
+      <function-decl name='usb_hub_find_child' mangled-name='usb_hub_find_child' filepath='drivers/usb/core/hub.c' line='6275' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_hub_find_child'>
+        <parameter type-id='25e60cb2' name='hdev' filepath='drivers/usb/core/hub.c' line='6275' column='1'/>
+        <parameter type-id='95e97e5e' name='port1' filepath='drivers/usb/core/hub.c' line='6276' column='1'/>
         <return type-id='25e60cb2'/>
       </function-decl>
       <function-decl name='usb_ifnum_to_if' mangled-name='usb_ifnum_to_if' filepath='drivers/usb/core/usb.c' line='271' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_ifnum_to_if'>
@@ -159454,12 +160078,12 @@
         <parameter type-id='77292cc0' name='ops' filepath='drivers/usb/core/hcd.c' line='3154' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='usb_os_desc_prepare_interf_dir' mangled-name='usb_os_desc_prepare_interf_dir' filepath='drivers/usb/gadget/configfs.c' line='1228' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_os_desc_prepare_interf_dir'>
-        <parameter type-id='97aff453' name='parent' filepath='drivers/usb/gadget/configfs.c' line='1229' column='1'/>
-        <parameter type-id='95e97e5e' name='n_interf' filepath='drivers/usb/gadget/configfs.c' line='1230' column='1'/>
-        <parameter type-id='b6338998' name='desc' filepath='drivers/usb/gadget/configfs.c' line='1231' column='1'/>
-        <parameter type-id='9b23c9ad' name='names' filepath='drivers/usb/gadget/configfs.c' line='1232' column='1'/>
-        <parameter type-id='2730d015' name='owner' filepath='drivers/usb/gadget/configfs.c' line='1233' column='1'/>
+      <function-decl name='usb_os_desc_prepare_interf_dir' mangled-name='usb_os_desc_prepare_interf_dir' filepath='drivers/usb/gadget/configfs.c' line='1234' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_os_desc_prepare_interf_dir'>
+        <parameter type-id='97aff453' name='parent' filepath='drivers/usb/gadget/configfs.c' line='1235' column='1'/>
+        <parameter type-id='95e97e5e' name='n_interf' filepath='drivers/usb/gadget/configfs.c' line='1236' column='1'/>
+        <parameter type-id='b6338998' name='desc' filepath='drivers/usb/gadget/configfs.c' line='1237' column='1'/>
+        <parameter type-id='9b23c9ad' name='names' filepath='drivers/usb/gadget/configfs.c' line='1238' column='1'/>
+        <parameter type-id='2730d015' name='owner' filepath='drivers/usb/gadget/configfs.c' line='1239' column='1'/>
         <return type-id='97aff453'/>
       </function-decl>
       <function-decl name='usb_otg_state_string' mangled-name='usb_otg_state_string' filepath='drivers/usb/common/common.c' line='43' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_otg_state_string'>
@@ -159520,8 +160144,8 @@
         <parameter type-id='8bf48c31' name='intf' filepath='drivers/usb/core/usb.c' line='790' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='usb_queue_reset_device' mangled-name='usb_queue_reset_device' filepath='drivers/usb/core/hub.c' line='6242' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_queue_reset_device'>
-        <parameter type-id='8bf48c31' name='iface' filepath='drivers/usb/core/hub.c' line='6242' column='1'/>
+      <function-decl name='usb_queue_reset_device' mangled-name='usb_queue_reset_device' filepath='drivers/usb/core/hub.c' line='6255' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_queue_reset_device'>
+        <parameter type-id='8bf48c31' name='iface' filepath='drivers/usb/core/hub.c' line='6255' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
       <function-decl name='usb_register_dev' mangled-name='usb_register_dev' filepath='drivers/usb/core/file.c' line='156' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_register_dev'>
@@ -159552,8 +160176,8 @@
         <parameter type-id='ca9354d1' name='x' filepath='drivers/usb/phy/phy.c' line='748' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='usb_reset_device' mangled-name='usb_reset_device' filepath='drivers/usb/core/hub.c' line='6124' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_reset_device'>
-        <parameter type-id='25e60cb2' name='udev' filepath='drivers/usb/core/hub.c' line='6124' column='1'/>
+      <function-decl name='usb_reset_device' mangled-name='usb_reset_device' filepath='drivers/usb/core/hub.c' line='6137' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_reset_device'>
+        <parameter type-id='25e60cb2' name='udev' filepath='drivers/usb/core/hub.c' line='6137' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
       <function-decl name='usb_reset_endpoint' mangled-name='usb_reset_endpoint' filepath='drivers/usb/core/message.c' line='1318' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_reset_endpoint'>
@@ -159595,17 +160219,17 @@
         <parameter type-id='3e3cd44f' name='sw' filepath='drivers/usb/roles/class.c' line='366' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='usb_root_hub_lost_power' mangled-name='usb_root_hub_lost_power' filepath='drivers/usb/core/hub.c' line='3968' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_root_hub_lost_power'>
-        <parameter type-id='25e60cb2' name='rhdev' filepath='drivers/usb/core/hub.c' line='3968' column='1'/>
+      <function-decl name='usb_root_hub_lost_power' mangled-name='usb_root_hub_lost_power' filepath='drivers/usb/core/hub.c' line='3971' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_root_hub_lost_power'>
+        <parameter type-id='25e60cb2' name='rhdev' filepath='drivers/usb/core/hub.c' line='3971' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
       <function-decl name='usb_scuttle_anchored_urbs' mangled-name='usb_scuttle_anchored_urbs' filepath='drivers/usb/core/urb.c' line='1018' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_scuttle_anchored_urbs'>
         <parameter type-id='bd300bf3' name='anchor' filepath='drivers/usb/core/urb.c' line='1018' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='usb_set_device_state' mangled-name='usb_set_device_state' filepath='drivers/usb/core/hub.c' line='2047' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_set_device_state'>
-        <parameter type-id='25e60cb2' name='udev' filepath='drivers/usb/core/hub.c' line='2047' column='1'/>
-        <parameter type-id='901a91cb' name='new_state' filepath='drivers/usb/core/hub.c' line='2048' column='1'/>
+      <function-decl name='usb_set_device_state' mangled-name='usb_set_device_state' filepath='drivers/usb/core/hub.c' line='2050' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_set_device_state'>
+        <parameter type-id='25e60cb2' name='udev' filepath='drivers/usb/core/hub.c' line='2050' column='1'/>
+        <parameter type-id='901a91cb' name='new_state' filepath='drivers/usb/core/hub.c' line='2051' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
       <function-decl name='usb_set_interface' mangled-name='usb_set_interface' filepath='drivers/usb/core/message.c' line='1527' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_set_interface'>
@@ -159691,9 +160315,9 @@
         <parameter type-id='d504f73d' name='nb' filepath='drivers/usb/core/notify.c' line='42' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='usb_wakeup_notification' mangled-name='usb_wakeup_notification' filepath='drivers/usb/core/hub.c' line='697' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_wakeup_notification'>
-        <parameter type-id='25e60cb2' name='hdev' filepath='drivers/usb/core/hub.c' line='697' column='1'/>
-        <parameter type-id='f0981eeb' name='portnum' filepath='drivers/usb/core/hub.c' line='698' column='1'/>
+      <function-decl name='usb_wakeup_notification' mangled-name='usb_wakeup_notification' filepath='drivers/usb/core/hub.c' line='700' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_wakeup_notification'>
+        <parameter type-id='25e60cb2' name='hdev' filepath='drivers/usb/core/hub.c' line='700' column='1'/>
+        <parameter type-id='f0981eeb' name='portnum' filepath='drivers/usb/core/hub.c' line='701' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
       <function-decl name='usbnet_cdc_unbind' mangled-name='usbnet_cdc_unbind' filepath='drivers/net/usb/cdc_ether.c' line='360' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usbnet_cdc_unbind'>
@@ -159730,6 +160354,11 @@
         <parameter type-id='8bf48c31' name='intf' filepath='drivers/net/usb/usbnet.c' line='95' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
+      <function-decl name='usbnet_get_ethernet_addr' mangled-name='usbnet_get_ethernet_addr' filepath='drivers/net/usb/usbnet.c' line='166' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usbnet_get_ethernet_addr'>
+        <parameter type-id='12884b9a' name='dev' filepath='drivers/net/usb/usbnet.c' line='166' column='1'/>
+        <parameter type-id='95e97e5e' name='iMACAddress' filepath='drivers/net/usb/usbnet.c' line='166' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
       <function-decl name='usbnet_get_link' mangled-name='usbnet_get_link' filepath='drivers/net/usb/usbnet.c' line='1022' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usbnet_get_link'>
         <parameter type-id='68a2d05b' name='net' filepath='drivers/net/usb/usbnet.c' line='1022' column='1'/>
         <return type-id='19c2251e'/>
@@ -160769,19 +161398,19 @@
         <parameter type-id='69bf7bee' name='maxsize' filepath='fs/read_write.c' line='54' column='1'/>
         <return type-id='69bf7bee'/>
       </function-decl>
-      <function-decl name='vhost_add_used_and_signal' mangled-name='vhost_add_used_and_signal' filepath='drivers/vhost/vhost.c' line='2483' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vhost_add_used_and_signal'>
-        <parameter type-id='db1a91a3' name='dev' filepath='drivers/vhost/vhost.c' line='2483' column='1'/>
-        <parameter type-id='9e440830' name='vq' filepath='drivers/vhost/vhost.c' line='2484' column='1'/>
-        <parameter type-id='f0981eeb' name='head' filepath='drivers/vhost/vhost.c' line='2485' column='1'/>
-        <parameter type-id='95e97e5e' name='len' filepath='drivers/vhost/vhost.c' line='2485' column='1'/>
+      <function-decl name='vhost_add_used_and_signal' mangled-name='vhost_add_used_and_signal' filepath='drivers/vhost/vhost.c' line='2484' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vhost_add_used_and_signal'>
+        <parameter type-id='db1a91a3' name='dev' filepath='drivers/vhost/vhost.c' line='2484' column='1'/>
+        <parameter type-id='9e440830' name='vq' filepath='drivers/vhost/vhost.c' line='2485' column='1'/>
+        <parameter type-id='f0981eeb' name='head' filepath='drivers/vhost/vhost.c' line='2486' column='1'/>
+        <parameter type-id='95e97e5e' name='len' filepath='drivers/vhost/vhost.c' line='2486' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
       <function-decl name='vhost_dev_check_owner' mangled-name='vhost_dev_check_owner' filepath='drivers/vhost/vhost.c' line='513' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vhost_dev_check_owner'>
         <parameter type-id='db1a91a3' name='dev' filepath='drivers/vhost/vhost.c' line='513' column='1'/>
         <return type-id='bd54fe1a'/>
       </function-decl>
-      <function-decl name='vhost_dev_cleanup' mangled-name='vhost_dev_cleanup' filepath='drivers/vhost/vhost.c' line='691' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vhost_dev_cleanup'>
-        <parameter type-id='db1a91a3' name='dev' filepath='drivers/vhost/vhost.c' line='691' column='1'/>
+      <function-decl name='vhost_dev_cleanup' mangled-name='vhost_dev_cleanup' filepath='drivers/vhost/vhost.c' line='692' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vhost_dev_cleanup'>
+        <parameter type-id='db1a91a3' name='dev' filepath='drivers/vhost/vhost.c' line='692' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
       <function-decl name='vhost_dev_init' mangled-name='vhost_dev_init' filepath='drivers/vhost/vhost.c' line='467' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vhost_dev_init'>
@@ -160795,56 +161424,56 @@
         <parameter type-id='850009e4' name='msg_handler' filepath='drivers/vhost/vhost.c' line='471' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='vhost_dev_ioctl' mangled-name='vhost_dev_ioctl' filepath='drivers/vhost/vhost.c' line='1755' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vhost_dev_ioctl'>
-        <parameter type-id='db1a91a3' name='d' filepath='drivers/vhost/vhost.c' line='1755' column='1'/>
-        <parameter type-id='f0981eeb' name='ioctl' filepath='drivers/vhost/vhost.c' line='1755' column='1'/>
-        <parameter type-id='eaa32e2f' name='argp' filepath='drivers/vhost/vhost.c' line='1755' column='1'/>
+      <function-decl name='vhost_dev_ioctl' mangled-name='vhost_dev_ioctl' filepath='drivers/vhost/vhost.c' line='1756' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vhost_dev_ioctl'>
+        <parameter type-id='db1a91a3' name='d' filepath='drivers/vhost/vhost.c' line='1756' column='1'/>
+        <parameter type-id='f0981eeb' name='ioctl' filepath='drivers/vhost/vhost.c' line='1756' column='1'/>
+        <parameter type-id='eaa32e2f' name='argp' filepath='drivers/vhost/vhost.c' line='1756' column='1'/>
         <return type-id='bd54fe1a'/>
       </function-decl>
       <function-decl name='vhost_dev_stop' mangled-name='vhost_dev_stop' filepath='drivers/vhost/vhost.c' line='659' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vhost_dev_stop'>
         <parameter type-id='db1a91a3' name='dev' filepath='drivers/vhost/vhost.c' line='659' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='vhost_disable_notify' mangled-name='vhost_disable_notify' filepath='drivers/vhost/vhost.c' line='2559' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vhost_disable_notify'>
-        <parameter type-id='db1a91a3' name='dev' filepath='drivers/vhost/vhost.c' line='2559' column='1'/>
-        <parameter type-id='9e440830' name='vq' filepath='drivers/vhost/vhost.c' line='2559' column='1'/>
+      <function-decl name='vhost_disable_notify' mangled-name='vhost_disable_notify' filepath='drivers/vhost/vhost.c' line='2560' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vhost_disable_notify'>
+        <parameter type-id='db1a91a3' name='dev' filepath='drivers/vhost/vhost.c' line='2560' column='1'/>
+        <parameter type-id='9e440830' name='vq' filepath='drivers/vhost/vhost.c' line='2560' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='vhost_enable_notify' mangled-name='vhost_enable_notify' filepath='drivers/vhost/vhost.c' line='2521' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vhost_enable_notify'>
-        <parameter type-id='db1a91a3' name='dev' filepath='drivers/vhost/vhost.c' line='2521' column='1'/>
-        <parameter type-id='9e440830' name='vq' filepath='drivers/vhost/vhost.c' line='2521' column='1'/>
+      <function-decl name='vhost_enable_notify' mangled-name='vhost_enable_notify' filepath='drivers/vhost/vhost.c' line='2522' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vhost_enable_notify'>
+        <parameter type-id='db1a91a3' name='dev' filepath='drivers/vhost/vhost.c' line='2522' column='1'/>
+        <parameter type-id='9e440830' name='vq' filepath='drivers/vhost/vhost.c' line='2522' column='1'/>
         <return type-id='b50a4934'/>
       </function-decl>
-      <function-decl name='vhost_get_vq_desc' mangled-name='vhost_get_vq_desc' filepath='drivers/vhost/vhost.c' line='2206' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vhost_get_vq_desc'>
-        <parameter type-id='9e440830' name='vq' filepath='drivers/vhost/vhost.c' line='2206' column='1'/>
-        <parameter type-id='cc4b1be9' name='iov' filepath='drivers/vhost/vhost.c' line='2207' column='1'/>
-        <parameter type-id='f0981eeb' name='iov_size' filepath='drivers/vhost/vhost.c' line='2207' column='1'/>
-        <parameter type-id='807869d3' name='out_num' filepath='drivers/vhost/vhost.c' line='2208' column='1'/>
-        <parameter type-id='807869d3' name='in_num' filepath='drivers/vhost/vhost.c' line='2208' column='1'/>
-        <parameter type-id='caa8cb44' name='log' filepath='drivers/vhost/vhost.c' line='2209' column='1'/>
-        <parameter type-id='807869d3' name='log_num' filepath='drivers/vhost/vhost.c' line='2209' column='1'/>
+      <function-decl name='vhost_get_vq_desc' mangled-name='vhost_get_vq_desc' filepath='drivers/vhost/vhost.c' line='2207' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vhost_get_vq_desc'>
+        <parameter type-id='9e440830' name='vq' filepath='drivers/vhost/vhost.c' line='2207' column='1'/>
+        <parameter type-id='cc4b1be9' name='iov' filepath='drivers/vhost/vhost.c' line='2208' column='1'/>
+        <parameter type-id='f0981eeb' name='iov_size' filepath='drivers/vhost/vhost.c' line='2208' column='1'/>
+        <parameter type-id='807869d3' name='out_num' filepath='drivers/vhost/vhost.c' line='2209' column='1'/>
+        <parameter type-id='807869d3' name='in_num' filepath='drivers/vhost/vhost.c' line='2209' column='1'/>
+        <parameter type-id='caa8cb44' name='log' filepath='drivers/vhost/vhost.c' line='2210' column='1'/>
+        <parameter type-id='807869d3' name='log_num' filepath='drivers/vhost/vhost.c' line='2210' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='vhost_log_access_ok' mangled-name='vhost_log_access_ok' filepath='drivers/vhost/vhost.c' line='1385' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vhost_log_access_ok'>
-        <parameter type-id='db1a91a3' name='dev' filepath='drivers/vhost/vhost.c' line='1385' column='1'/>
+      <function-decl name='vhost_log_access_ok' mangled-name='vhost_log_access_ok' filepath='drivers/vhost/vhost.c' line='1386' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vhost_log_access_ok'>
+        <parameter type-id='db1a91a3' name='dev' filepath='drivers/vhost/vhost.c' line='1386' column='1'/>
         <return type-id='b50a4934'/>
       </function-decl>
       <function-decl name='vhost_poll_flush' mangled-name='vhost_poll_flush' filepath='drivers/vhost/vhost.c' line='250' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vhost_poll_flush'>
         <parameter type-id='3b230a09' name='poll' filepath='drivers/vhost/vhost.c' line='250' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='vhost_vq_access_ok' mangled-name='vhost_vq_access_ok' filepath='drivers/vhost/vhost.c' line='1417' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vhost_vq_access_ok'>
-        <parameter type-id='9e440830' name='vq' filepath='drivers/vhost/vhost.c' line='1417' column='1'/>
+      <function-decl name='vhost_vq_access_ok' mangled-name='vhost_vq_access_ok' filepath='drivers/vhost/vhost.c' line='1418' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vhost_vq_access_ok'>
+        <parameter type-id='9e440830' name='vq' filepath='drivers/vhost/vhost.c' line='1418' column='1'/>
         <return type-id='b50a4934'/>
       </function-decl>
-      <function-decl name='vhost_vq_init_access' mangled-name='vhost_vq_init_access' filepath='drivers/vhost/vhost.c' line='2009' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vhost_vq_init_access'>
-        <parameter type-id='9e440830' name='vq' filepath='drivers/vhost/vhost.c' line='2009' column='1'/>
+      <function-decl name='vhost_vq_init_access' mangled-name='vhost_vq_init_access' filepath='drivers/vhost/vhost.c' line='2010' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vhost_vq_init_access'>
+        <parameter type-id='9e440830' name='vq' filepath='drivers/vhost/vhost.c' line='2010' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='vhost_vring_ioctl' mangled-name='vhost_vring_ioctl' filepath='drivers/vhost/vhost.c' line='1590' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vhost_vring_ioctl'>
-        <parameter type-id='db1a91a3' name='d' filepath='drivers/vhost/vhost.c' line='1590' column='1'/>
-        <parameter type-id='f0981eeb' name='ioctl' filepath='drivers/vhost/vhost.c' line='1590' column='1'/>
-        <parameter type-id='eaa32e2f' name='argp' filepath='drivers/vhost/vhost.c' line='1590' column='1'/>
+      <function-decl name='vhost_vring_ioctl' mangled-name='vhost_vring_ioctl' filepath='drivers/vhost/vhost.c' line='1591' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vhost_vring_ioctl'>
+        <parameter type-id='db1a91a3' name='d' filepath='drivers/vhost/vhost.c' line='1591' column='1'/>
+        <parameter type-id='f0981eeb' name='ioctl' filepath='drivers/vhost/vhost.c' line='1591' column='1'/>
+        <parameter type-id='eaa32e2f' name='argp' filepath='drivers/vhost/vhost.c' line='1591' column='1'/>
         <return type-id='bd54fe1a'/>
       </function-decl>
       <function-decl name='video_devdata' mangled-name='video_devdata' filepath='drivers/media/v4l2-core/v4l2-dev.c' line='235' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='video_devdata'>
@@ -161214,22 +161843,22 @@
         <parameter type-id='7359adad' name='vm_flags' filepath='mm/mmap.c' line='118' column='1'/>
         <return type-id='2e2dcbd3'/>
       </function-decl>
-      <function-decl name='vm_insert_page' mangled-name='vm_insert_page' filepath='mm/memory.c' line='1993' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vm_insert_page'>
-        <parameter type-id='2ae08426' name='vma' filepath='mm/memory.c' line='1993' column='1'/>
-        <parameter type-id='7359adad' name='addr' filepath='mm/memory.c' line='1993' column='1'/>
-        <parameter type-id='02f11ed4' name='page' filepath='mm/memory.c' line='1994' column='1'/>
+      <function-decl name='vm_insert_page' mangled-name='vm_insert_page' filepath='mm/memory.c' line='2006' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vm_insert_page'>
+        <parameter type-id='2ae08426' name='vma' filepath='mm/memory.c' line='2006' column='1'/>
+        <parameter type-id='7359adad' name='addr' filepath='mm/memory.c' line='2006' column='1'/>
+        <parameter type-id='02f11ed4' name='page' filepath='mm/memory.c' line='2007' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='vm_iomap_memory' mangled-name='vm_iomap_memory' filepath='mm/memory.c' line='2529' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vm_iomap_memory'>
-        <parameter type-id='2ae08426' name='vma' filepath='mm/memory.c' line='2529' column='1'/>
-        <parameter type-id='2522883d' name='start' filepath='mm/memory.c' line='2529' column='1'/>
-        <parameter type-id='7359adad' name='len' filepath='mm/memory.c' line='2529' column='1'/>
+      <function-decl name='vm_iomap_memory' mangled-name='vm_iomap_memory' filepath='mm/memory.c' line='2542' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vm_iomap_memory'>
+        <parameter type-id='2ae08426' name='vma' filepath='mm/memory.c' line='2542' column='1'/>
+        <parameter type-id='2522883d' name='start' filepath='mm/memory.c' line='2542' column='1'/>
+        <parameter type-id='7359adad' name='len' filepath='mm/memory.c' line='2542' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='vm_map_pages' mangled-name='vm_map_pages' filepath='mm/memory.c' line='2063' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vm_map_pages'>
-        <parameter type-id='2ae08426' name='vma' filepath='mm/memory.c' line='2063' column='1'/>
-        <parameter type-id='9f93c9da' name='pages' filepath='mm/memory.c' line='2063' column='1'/>
-        <parameter type-id='7359adad' name='num' filepath='mm/memory.c' line='2064' column='1'/>
+      <function-decl name='vm_map_pages' mangled-name='vm_map_pages' filepath='mm/memory.c' line='2076' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vm_map_pages'>
+        <parameter type-id='2ae08426' name='vma' filepath='mm/memory.c' line='2076' column='1'/>
+        <parameter type-id='9f93c9da' name='pages' filepath='mm/memory.c' line='2076' column='1'/>
+        <parameter type-id='7359adad' name='num' filepath='mm/memory.c' line='2077' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
       <function-decl name='vm_map_ram' mangled-name='vm_map_ram' filepath='mm/vmalloc.c' line='2192' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vm_map_ram'>
@@ -161296,23 +161925,23 @@
         <parameter type-id='b59d7dce' name='len' filepath='mm/util.c' line='198' column='1'/>
         <return type-id='eaa32e2f'/>
       </function-decl>
-      <function-decl name='vmf_insert_mixed' mangled-name='vmf_insert_mixed' filepath='mm/memory.c' line='2312' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vmf_insert_mixed'>
-        <parameter type-id='2ae08426' name='vma' filepath='mm/memory.c' line='2312' column='1'/>
-        <parameter type-id='7359adad' name='addr' filepath='mm/memory.c' line='2312' column='1'/>
-        <parameter type-id='abe59ef3' name='pfn' filepath='mm/memory.c' line='2313' column='1'/>
+      <function-decl name='vmf_insert_mixed' mangled-name='vmf_insert_mixed' filepath='mm/memory.c' line='2325' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vmf_insert_mixed'>
+        <parameter type-id='2ae08426' name='vma' filepath='mm/memory.c' line='2325' column='1'/>
+        <parameter type-id='7359adad' name='addr' filepath='mm/memory.c' line='2325' column='1'/>
+        <parameter type-id='abe59ef3' name='pfn' filepath='mm/memory.c' line='2326' column='1'/>
         <return type-id='e9265215'/>
       </function-decl>
-      <function-decl name='vmf_insert_pfn' mangled-name='vmf_insert_pfn' filepath='mm/memory.c' line='2212' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vmf_insert_pfn'>
-        <parameter type-id='2ae08426' name='vma' filepath='mm/memory.c' line='2212' column='1'/>
-        <parameter type-id='7359adad' name='addr' filepath='mm/memory.c' line='2212' column='1'/>
-        <parameter type-id='7359adad' name='pfn' filepath='mm/memory.c' line='2213' column='1'/>
+      <function-decl name='vmf_insert_pfn' mangled-name='vmf_insert_pfn' filepath='mm/memory.c' line='2225' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vmf_insert_pfn'>
+        <parameter type-id='2ae08426' name='vma' filepath='mm/memory.c' line='2225' column='1'/>
+        <parameter type-id='7359adad' name='addr' filepath='mm/memory.c' line='2225' column='1'/>
+        <parameter type-id='7359adad' name='pfn' filepath='mm/memory.c' line='2226' column='1'/>
         <return type-id='e9265215'/>
       </function-decl>
-      <function-decl name='vmf_insert_pfn_prot' mangled-name='vmf_insert_pfn_prot' filepath='mm/memory.c' line='2164' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vmf_insert_pfn_prot'>
-        <parameter type-id='2ae08426' name='vma' filepath='mm/memory.c' line='2164' column='1'/>
-        <parameter type-id='7359adad' name='addr' filepath='mm/memory.c' line='2164' column='1'/>
-        <parameter type-id='7359adad' name='pfn' filepath='mm/memory.c' line='2165' column='1'/>
-        <parameter type-id='2e2dcbd3' name='pgprot' filepath='mm/memory.c' line='2165' column='1'/>
+      <function-decl name='vmf_insert_pfn_prot' mangled-name='vmf_insert_pfn_prot' filepath='mm/memory.c' line='2177' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vmf_insert_pfn_prot'>
+        <parameter type-id='2ae08426' name='vma' filepath='mm/memory.c' line='2177' column='1'/>
+        <parameter type-id='7359adad' name='addr' filepath='mm/memory.c' line='2177' column='1'/>
+        <parameter type-id='7359adad' name='pfn' filepath='mm/memory.c' line='2178' column='1'/>
+        <parameter type-id='2e2dcbd3' name='pgprot' filepath='mm/memory.c' line='2178' column='1'/>
         <return type-id='e9265215'/>
       </function-decl>
       <function-decl name='vprintk' mangled-name='vprintk' filepath='kernel/printk/printk_safe.c' line='29' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vprintk'>
@@ -161489,12 +162118,12 @@
         <parameter type-id='95e97e5e' name='bit' filepath='kernel/sched/wait_bit.c' line='147' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='wake_up_if_idle' mangled-name='wake_up_if_idle' filepath='kernel/sched/core.c' line='3828' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='wake_up_if_idle'>
-        <parameter type-id='95e97e5e' name='cpu' filepath='kernel/sched/core.c' line='3828' column='1'/>
+      <function-decl name='wake_up_if_idle' mangled-name='wake_up_if_idle' filepath='kernel/sched/core.c' line='3796' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='wake_up_if_idle'>
+        <parameter type-id='95e97e5e' name='cpu' filepath='kernel/sched/core.c' line='3796' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='wake_up_process' mangled-name='wake_up_process' filepath='kernel/sched/core.c' line='4345' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='wake_up_process'>
-        <parameter type-id='f23e2572' name='p' filepath='kernel/sched/core.c' line='4345' column='1'/>
+      <function-decl name='wake_up_process' mangled-name='wake_up_process' filepath='kernel/sched/core.c' line='4313' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='wake_up_process'>
+        <parameter type-id='f23e2572' name='p' filepath='kernel/sched/core.c' line='4313' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
       <function-decl name='wakeup_source_add' mangled-name='wakeup_source_add' filepath='drivers/base/power/wakeup.c' line='175' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='wakeup_source_add'>
@@ -161608,18 +162237,18 @@
         <parameter type-id='02f11ed4' name='page' filepath='mm/page-writeback.c' line='2396' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='ww_mutex_lock' mangled-name='ww_mutex_lock' filepath='kernel/locking/mutex.c' line='1058' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ww_mutex_lock'>
-        <parameter type-id='7533ba6f' name='lock' filepath='kernel/locking/mutex.c' line='1058' column='1'/>
-        <parameter type-id='c1d02a64' name='ctx' filepath='kernel/locking/mutex.c' line='1058' column='1'/>
+      <function-decl name='ww_mutex_lock' mangled-name='ww_mutex_lock' filepath='kernel/locking/mutex.c' line='1068' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ww_mutex_lock'>
+        <parameter type-id='7533ba6f' name='lock' filepath='kernel/locking/mutex.c' line='1068' column='1'/>
+        <parameter type-id='c1d02a64' name='ctx' filepath='kernel/locking/mutex.c' line='1068' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='ww_mutex_lock_interruptible' mangled-name='ww_mutex_lock_interruptible' filepath='kernel/locking/mutex.c' line='1073' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ww_mutex_lock_interruptible'>
-        <parameter type-id='7533ba6f' name='lock' filepath='kernel/locking/mutex.c' line='1073' column='1'/>
-        <parameter type-id='c1d02a64' name='ctx' filepath='kernel/locking/mutex.c' line='1073' column='1'/>
+      <function-decl name='ww_mutex_lock_interruptible' mangled-name='ww_mutex_lock_interruptible' filepath='kernel/locking/mutex.c' line='1083' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ww_mutex_lock_interruptible'>
+        <parameter type-id='7533ba6f' name='lock' filepath='kernel/locking/mutex.c' line='1083' column='1'/>
+        <parameter type-id='c1d02a64' name='ctx' filepath='kernel/locking/mutex.c' line='1083' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='ww_mutex_unlock' mangled-name='ww_mutex_unlock' filepath='kernel/locking/mutex.c' line='560' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ww_mutex_unlock'>
-        <parameter type-id='7533ba6f' name='lock' filepath='kernel/locking/mutex.c' line='560' column='1'/>
+      <function-decl name='ww_mutex_unlock' mangled-name='ww_mutex_unlock' filepath='kernel/locking/mutex.c' line='570' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ww_mutex_unlock'>
+        <parameter type-id='7533ba6f' name='lock' filepath='kernel/locking/mutex.c' line='570' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
       <function-decl name='xa_destroy' mangled-name='xa_destroy' filepath='lib/xarray.c' line='2204' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xa_destroy'>
@@ -161681,17 +162310,17 @@
         <parameter type-id='38ed603d' name='xdp' filepath='net/core/xdp.c' line='473' column='1'/>
         <return type-id='cb1c5129'/>
       </function-decl>
-      <function-decl name='xdp_do_flush' mangled-name='xdp_do_flush' filepath='net/core/filter.c' line='3924' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xdp_do_flush'>
+      <function-decl name='xdp_do_flush' mangled-name='xdp_do_flush' filepath='net/core/filter.c' line='3927' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xdp_do_flush'>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='xdp_do_redirect' mangled-name='xdp_do_redirect' filepath='net/core/filter.c' line='3974' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xdp_do_redirect'>
-        <parameter type-id='68a2d05b' name='dev' filepath='net/core/filter.c' line='3974' column='1'/>
-        <parameter type-id='38ed603d' name='xdp' filepath='net/core/filter.c' line='3974' column='1'/>
-        <parameter type-id='bdcee7ae' name='xdp_prog' filepath='net/core/filter.c' line='3975' column='1'/>
+      <function-decl name='xdp_do_redirect' mangled-name='xdp_do_redirect' filepath='net/core/filter.c' line='3977' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xdp_do_redirect'>
+        <parameter type-id='68a2d05b' name='dev' filepath='net/core/filter.c' line='3977' column='1'/>
+        <parameter type-id='38ed603d' name='xdp' filepath='net/core/filter.c' line='3977' column='1'/>
+        <parameter type-id='bdcee7ae' name='xdp_prog' filepath='net/core/filter.c' line='3978' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='xdp_master_redirect' mangled-name='xdp_master_redirect' filepath='net/core/filter.c' line='3952' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xdp_master_redirect'>
-        <parameter type-id='38ed603d' name='xdp' filepath='net/core/filter.c' line='3952' column='1'/>
+      <function-decl name='xdp_master_redirect' mangled-name='xdp_master_redirect' filepath='net/core/filter.c' line='3955' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xdp_master_redirect'>
+        <parameter type-id='38ed603d' name='xdp' filepath='net/core/filter.c' line='3955' column='1'/>
         <return type-id='19c2251e'/>
       </function-decl>
       <function-decl name='xdp_return_frame' mangled-name='xdp_return_frame' filepath='net/core/xdp.c' line='377' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xdp_return_frame'>
@@ -161780,16 +162409,16 @@
         <parameter type-id='328dda6e' name='x' filepath='net/xfrm/xfrm_state.c' line='2693' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='xfrm_input' mangled-name='xfrm_input' filepath='net/xfrm/xfrm_input.c' line='460' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xfrm_input'>
-        <parameter type-id='0fbf3cfd' name='skb' filepath='net/xfrm/xfrm_input.c' line='460' column='1'/>
-        <parameter type-id='95e97e5e' name='nexthdr' filepath='net/xfrm/xfrm_input.c' line='460' column='1'/>
-        <parameter type-id='78a133c2' name='spi' filepath='net/xfrm/xfrm_input.c' line='460' column='1'/>
-        <parameter type-id='95e97e5e' name='encap_type' filepath='net/xfrm/xfrm_input.c' line='460' column='1'/>
+      <function-decl name='xfrm_input' mangled-name='xfrm_input' filepath='net/xfrm/xfrm_input.c' line='459' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xfrm_input'>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/xfrm/xfrm_input.c' line='459' column='1'/>
+        <parameter type-id='95e97e5e' name='nexthdr' filepath='net/xfrm/xfrm_input.c' line='459' column='1'/>
+        <parameter type-id='78a133c2' name='spi' filepath='net/xfrm/xfrm_input.c' line='459' column='1'/>
+        <parameter type-id='95e97e5e' name='encap_type' filepath='net/xfrm/xfrm_input.c' line='459' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='xfrm_input_resume' mangled-name='xfrm_input_resume' filepath='net/xfrm/xfrm_input.c' line='758' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xfrm_input_resume'>
-        <parameter type-id='0fbf3cfd' name='skb' filepath='net/xfrm/xfrm_input.c' line='758' column='1'/>
-        <parameter type-id='95e97e5e' name='nexthdr' filepath='net/xfrm/xfrm_input.c' line='758' column='1'/>
+      <function-decl name='xfrm_input_resume' mangled-name='xfrm_input_resume' filepath='net/xfrm/xfrm_input.c' line='757' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xfrm_input_resume'>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/xfrm/xfrm_input.c' line='757' column='1'/>
+        <parameter type-id='95e97e5e' name='nexthdr' filepath='net/xfrm/xfrm_input.c' line='757' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
       <function-decl name='xfrm_lookup' mangled-name='xfrm_lookup' filepath='net/xfrm/xfrm_policy.c' line='3190' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xfrm_lookup'>
@@ -161894,9 +162523,9 @@
         <parameter type-id='d7409d08' name='erst' filepath='drivers/usb/host/xhci-mem.c' line='1836' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='xhci_gen_setup' mangled-name='xhci_gen_setup' filepath='drivers/usb/host/xhci.c' line='5227' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xhci_gen_setup'>
-        <parameter type-id='fc4f83c1' name='hcd' filepath='drivers/usb/host/xhci.c' line='5227' column='1'/>
-        <parameter type-id='67f831c0' name='get_quirks' filepath='drivers/usb/host/xhci.c' line='5227' column='1'/>
+      <function-decl name='xhci_gen_setup' mangled-name='xhci_gen_setup' filepath='drivers/usb/host/xhci.c' line='5232' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xhci_gen_setup'>
+        <parameter type-id='fc4f83c1' name='hcd' filepath='drivers/usb/host/xhci.c' line='5232' column='1'/>
+        <parameter type-id='67f831c0' name='get_quirks' filepath='drivers/usb/host/xhci.c' line='5232' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
       <function-decl name='xhci_get_endpoint_index' mangled-name='xhci_get_endpoint_index' filepath='drivers/usb/host/xhci.c' line='1456' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xhci_get_endpoint_index'>
@@ -161909,17 +162538,17 @@
         <parameter type-id='f0981eeb' name='ep_index' filepath='drivers/usb/host/xhci-mem.c' line='527' column='1'/>
         <return type-id='216753a5'/>
       </function-decl>
-      <function-decl name='xhci_init_driver' mangled-name='xhci_init_driver' filepath='drivers/usb/host/xhci.c' line='5474' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xhci_init_driver'>
-        <parameter type-id='c07d5ba3' name='drv' filepath='drivers/usb/host/xhci.c' line='5474' column='1'/>
-        <parameter type-id='9a55ba3d' name='over' filepath='drivers/usb/host/xhci.c' line='5475' column='1'/>
+      <function-decl name='xhci_init_driver' mangled-name='xhci_init_driver' filepath='drivers/usb/host/xhci.c' line='5479' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xhci_init_driver'>
+        <parameter type-id='c07d5ba3' name='drv' filepath='drivers/usb/host/xhci.c' line='5479' column='1'/>
+        <parameter type-id='9a55ba3d' name='over' filepath='drivers/usb/host/xhci.c' line='5480' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='xhci_queue_stop_endpoint' mangled-name='xhci_queue_stop_endpoint' filepath='drivers/usb/host/xhci-ring.c' line='4415' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xhci_queue_stop_endpoint'>
-        <parameter type-id='0c65b409' name='xhci' filepath='drivers/usb/host/xhci-ring.c' line='4415' column='1'/>
-        <parameter type-id='5a32bd4b' name='cmd' filepath='drivers/usb/host/xhci-ring.c' line='4415' column='1'/>
-        <parameter type-id='95e97e5e' name='slot_id' filepath='drivers/usb/host/xhci-ring.c' line='4416' column='1'/>
-        <parameter type-id='f0981eeb' name='ep_index' filepath='drivers/usb/host/xhci-ring.c' line='4416' column='1'/>
-        <parameter type-id='95e97e5e' name='suspend' filepath='drivers/usb/host/xhci-ring.c' line='4416' column='1'/>
+      <function-decl name='xhci_queue_stop_endpoint' mangled-name='xhci_queue_stop_endpoint' filepath='drivers/usb/host/xhci-ring.c' line='4418' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xhci_queue_stop_endpoint'>
+        <parameter type-id='0c65b409' name='xhci' filepath='drivers/usb/host/xhci-ring.c' line='4418' column='1'/>
+        <parameter type-id='5a32bd4b' name='cmd' filepath='drivers/usb/host/xhci-ring.c' line='4418' column='1'/>
+        <parameter type-id='95e97e5e' name='slot_id' filepath='drivers/usb/host/xhci-ring.c' line='4419' column='1'/>
+        <parameter type-id='f0981eeb' name='ep_index' filepath='drivers/usb/host/xhci-ring.c' line='4419' column='1'/>
+        <parameter type-id='95e97e5e' name='suspend' filepath='drivers/usb/host/xhci-ring.c' line='4419' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
       <function-decl name='xhci_reset_bandwidth' mangled-name='xhci_reset_bandwidth' filepath='drivers/usb/host/xhci.c' line='3120' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xhci_reset_bandwidth'>
@@ -162082,7 +162711,13 @@
         <parameter type-id='f0981eeb' name='n' filepath='net/netfilter/x_tables.c' line='132' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='yield' mangled-name='yield' filepath='kernel/sched/core.c' line='8563' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='yield'>
+      <function-decl name='yield' mangled-name='yield' filepath='kernel/sched/core.c' line='8495' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='yield'>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='zap_vma_ptes' mangled-name='zap_vma_ptes' filepath='mm/memory.c' line='1768' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zap_vma_ptes'>
+        <parameter type-id='2ae08426' name='vma' filepath='mm/memory.c' line='1768' column='1'/>
+        <parameter type-id='7359adad' name='address' filepath='mm/memory.c' line='1768' column='1'/>
+        <parameter type-id='7359adad' name='size' filepath='mm/memory.c' line='1769' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
       <function-decl name='zlib_deflate' mangled-name='zlib_deflate' filepath='lib/zlib_deflate/deflate.c' line='329' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zlib_deflate'>
diff --git a/android/abi_gki_aarch64_amlogic b/android/abi_gki_aarch64_amlogic
index a95fbda7..2eebd0a 100644
--- a/android/abi_gki_aarch64_amlogic
+++ b/android/abi_gki_aarch64_amlogic
@@ -334,6 +334,7 @@
   devm_nvmem_cell_get
   devm_of_clk_add_hw_provider
   devm_of_pwm_get
+  devm_pci_remap_cfg_resource
   devm_phy_get
   devm_pinctrl_get
   devm_pinctrl_put
diff --git a/android/abi_gki_aarch64_db845c b/android/abi_gki_aarch64_db845c
index 731d6ae..f7b65dc 100644
--- a/android/abi_gki_aarch64_db845c
+++ b/android/abi_gki_aarch64_db845c
@@ -168,10 +168,6 @@
   dev_pm_opp_put
   dev_pm_opp_set_opp
   dev_pm_opp_set_rate
-  devres_add
-  __devres_alloc_node
-  devres_free
-  devres_release
   dev_set_name
   _dev_warn
   disable_irq
@@ -1025,13 +1021,6 @@
 # required by icc-osm-l3.ko
   icc_std_aggregate
 
-# required by led-class-multicolor.ko
-  led_classdev_register_ext
-  led_classdev_unregister
-  led_colors
-  led_set_brightness
-  stpcpy
-
 # required by llcc-qcom.ko
   devm_platform_ioremap_resource_byname
 
@@ -1755,6 +1744,12 @@
   __xa_insert
   xa_load
 
+# required by reboot-mode.ko
+  devres_add
+  __devres_alloc_node
+  devres_free
+  devres_release
+
 # required by regmap-spmi.ko
   spmi_ext_register_read
   spmi_ext_register_readl
@@ -1927,8 +1922,11 @@
   ufshcd_runtime_resume
   ufshcd_runtime_suspend
   ufshcd_suspend_prepare
+  ufshcd_system_freeze
+  ufshcd_system_restore
   ufshcd_system_resume
   ufshcd_system_suspend
+  ufshcd_system_thaw
 
 # required by ulpi.ko
   of_device_modalias
@@ -2010,7 +2008,12 @@
 
 # preserved by --additions-only
   drm_connector_init_with_ddc
+  led_classdev_register_ext
+  led_classdev_unregister
+  led_colors
+  led_set_brightness
   of_clk_get_by_name
   snd_soc_get_volsw_sx
   snd_soc_info_volsw_sx
   snd_soc_put_volsw_sx
+  stpcpy
diff --git a/android/abi_gki_aarch64_lenovo b/android/abi_gki_aarch64_lenovo
new file mode 100644
index 0000000..cdd5b77
--- /dev/null
+++ b/android/abi_gki_aarch64_lenovo
@@ -0,0 +1,956 @@
+[abi_symbol_list]
+# commonly used symbols
+  alloc_chrdev_region
+  __alloc_pages
+  __alloc_skb
+  alloc_workqueue
+  android_kmalloc_64_create
+  __arch_copy_from_user
+  __arch_copy_to_user
+  arm64_const_caps_ready
+  arm64_use_ng_mappings
+  bcmp
+  bitmap_find_free_region
+  bitmap_release_region
+  bitmap_zalloc
+  bpf_trace_run1
+  bpf_trace_run2
+  bpf_trace_run3
+  bpf_trace_run4
+  bpf_trace_run5
+  bus_for_each_dev
+  cancel_delayed_work
+  cancel_delayed_work_sync
+  cancel_work_sync
+  cdev_add
+  cdev_del
+  cdev_init
+  __cfi_slowpath_diag
+  __check_object_size
+  __class_create
+  class_destroy
+  __class_register
+  class_unregister
+  __ClearPageMovable
+  clk_disable
+  clk_enable
+  clk_get_rate
+  clk_prepare
+  clk_put
+  clk_unprepare
+  cma_alloc
+  cma_release
+  complete
+  complete_all
+  __const_udelay
+  consume_skb
+  cpu_bit_bitmap
+  __cpuhp_remove_state
+  __cpuhp_setup_state
+  __cpuhp_state_add_instance
+  __cpuhp_state_remove_instance
+  cpu_hwcap_keys
+  cpu_hwcaps
+  cpumask_next
+  cpu_number
+  __cpu_online_mask
+  __cpu_possible_mask
+  _ctype
+  debugfs_attr_read
+  debugfs_attr_write
+  debugfs_create_dir
+  debugfs_create_file
+  debugfs_remove
+  default_llseek
+  delayed_work_timer_fn
+  del_timer_sync
+  destroy_workqueue
+  dev_close
+  dev_driver_string
+  _dev_err
+  device_create
+  device_destroy
+  device_initialize
+  device_property_present
+  device_property_read_u32_array
+  _dev_info
+  devm_gpiod_get_optional
+  devm_ioremap
+  devm_ioremap_resource
+  devm_kfree
+  devm_kmalloc
+  devm_platform_ioremap_resource
+  __devm_regmap_init
+  __devm_request_region
+  devm_request_threaded_irq
+  _dev_notice
+  dev_set_name
+  _dev_warn
+  disable_irq
+  dma_alloc_attrs
+  dma_buf_attach
+  dma_buf_detach
+  dma_buf_export
+  dma_buf_get
+  dma_buf_map_attachment
+  dma_buf_put
+  dma_buf_unmap_attachment
+  dma_contiguous_default_area
+  dma_free_attrs
+  dma_heap_add
+  dma_heap_get_drvdata
+  dma_heap_get_name
+  dmam_alloc_attrs
+  dma_map_page_attrs
+  dma_map_sgtable
+  dmam_free_coherent
+  dma_set_coherent_mask
+  dma_set_mask
+  dma_sync_sg_for_cpu
+  dma_sync_sg_for_device
+  dma_sync_single_for_device
+  dma_unmap_page_attrs
+  dma_unmap_sg_attrs
+  down_interruptible
+  down_read
+  down_write
+  dump_stack
+  enable_irq
+  eth_type_trans
+  event_triggers_call
+  _find_first_bit
+  _find_first_zero_bit
+  __find_vma
+  finish_wait
+  flush_work
+  free_irq
+  __free_pages
+  free_pages
+  gcd
+  __get_free_pages
+  gic_nonsecure_priorities
+  hrtimer_cancel
+  hrtimer_forward
+  hrtimer_init
+  hrtimer_start_range_ns
+  i2c_get_adapter
+  i2c_put_adapter
+  i2c_transfer
+  init_net
+  __init_rwsem
+  __init_swait_queue_head
+  init_timer_key
+  init_wait_entry
+  __init_waitqueue_head
+  iomem_resource
+  __ioremap
+  iounmap
+  iput
+  irq_get_irq_data
+  irq_of_parse_and_map
+  irq_set_affinity
+  is_vmalloc_addr
+  jiffies
+  jiffies_to_msecs
+  kasan_flag_enabled
+  kfree
+  kfree_skb
+  kimage_voffset
+  __kmalloc
+  kmalloc_caches
+  kmalloc_order_trace
+  kmem_cache_alloc_trace
+  kobject_create_and_add
+  kobject_init_and_add
+  kobject_put
+  kstrdup
+  kstrtoint
+  kstrtoint_from_user
+  kstrtouint
+  kstrtoull
+  kthread_create_on_node
+  kthread_should_stop
+  kthread_stop
+  ktime_get
+  ktime_get_mono_fast_ns
+  ktime_get_real_ts64
+  ktime_get_with_offset
+  kvfree
+  kvmalloc_node
+  __list_add_valid
+  __list_del_entry_valid
+  log_post_read_mmio
+  log_post_write_mmio
+  log_read_mmio
+  log_write_mmio
+  memcmp
+  memcpy
+  memdup_user
+  memmove
+  memset
+  memstart_addr
+  misc_deregister
+  misc_register
+  mod_delayed_work_on
+  mod_timer
+  module_layout
+  __msecs_to_jiffies
+  msleep
+  __mutex_init
+  mutex_is_locked
+  mutex_lock
+  mutex_unlock
+  __netdev_alloc_skb
+  netif_rx_ni
+  netlink_unicast
+  nla_put
+  no_llseek
+  nr_cpu_ids
+  of_address_to_resource
+  of_device_is_compatible
+  of_dma_is_coherent
+  of_find_device_by_node
+  of_find_property
+  of_get_child_by_name
+  of_get_next_available_child
+  of_get_next_child
+  of_iomap
+  of_irq_get
+  of_parse_phandle
+  of_property_read_string
+  of_property_read_variable_u32_array
+  of_reserved_mem_lookup
+  panic
+  param_ops_bool
+  param_ops_charp
+  param_ops_int
+  param_ops_string
+  param_ops_uint
+  param_ops_ulong
+  param_ops_ushort
+  pci_disable_device
+  pci_enable_device
+  pci_find_capability
+  pci_get_device
+  pci_set_power_state
+  __per_cpu_offset
+  perf_trace_buf_alloc
+  perf_trace_run_bpf_submit
+  pfn_is_map_memory
+  platform_device_register
+  platform_device_unregister
+  __platform_driver_register
+  platform_driver_unregister
+  platform_get_irq
+  platform_get_irq_byname
+  platform_get_irq_byname_optional
+  platform_get_resource
+  __pm_runtime_disable
+  pm_runtime_enable
+  __pm_runtime_idle
+  __pm_runtime_resume
+  __pm_runtime_set_status
+  __pm_runtime_suspend
+  preempt_schedule
+  preempt_schedule_notrace
+  prepare_to_wait_event
+  _printk
+  proc_create
+  put_device
+  __put_page
+  __put_task_struct
+  queue_delayed_work_on
+  queue_work_on
+  ___ratelimit
+  _raw_spin_lock
+  _raw_spin_lock_bh
+  _raw_spin_lock_irqsave
+  _raw_spin_unlock
+  _raw_spin_unlock_bh
+  _raw_spin_unlock_irqrestore
+  rb_erase
+  rb_insert_color
+  __rcu_read_lock
+  __rcu_read_unlock
+  refcount_warn_saturate
+  register_chrdev_region
+  register_netdevice
+  register_netdevice_notifier
+  register_shrinker
+  regmap_read
+  regmap_write
+  release_firmware
+  __release_region
+  remap_pfn_range
+  request_firmware
+  __request_region
+  request_threaded_irq
+  reset_control_assert
+  reset_control_deassert
+  rfkill_alloc
+  rfkill_destroy
+  rfkill_register
+  rfkill_unregister
+  rtnl_is_locked
+  rtnl_lock
+  rtnl_unlock
+  sched_clock
+  schedule
+  schedule_timeout
+  scnprintf
+  seq_lseek
+  seq_open
+  seq_printf
+  seq_puts
+  seq_read
+  seq_release
+  __SetPageMovable
+  sg_alloc_table
+  sg_alloc_table_from_pages_segment
+  sg_free_table
+  sg_next
+  simple_attr_open
+  simple_attr_release
+  simple_open
+  simple_read_from_buffer
+  single_open
+  single_release
+  skb_pull
+  skb_push
+  snprintf
+  sprintf
+  sscanf
+  __stack_chk_fail
+  strcmp
+  strcpy
+  strlcpy
+  strlen
+  strncmp
+  strncpy
+  strnlen
+  strstr
+  __sw_hweight32
+  __sw_hweight64
+  synchronize_net
+  synchronize_rcu
+  sysfs_create_file_ns
+  sysfs_create_group
+  sysfs_emit
+  sysfs_remove_group
+  sysfs_streq
+  system_wq
+  trace_event_buffer_commit
+  trace_event_buffer_reserve
+  trace_event_ignore_this_pid
+  trace_event_printf
+  trace_event_raw_init
+  trace_event_reg
+  trace_handle_return
+  trace_print_array_seq
+  trace_raw_output_prep
+  __ubsan_handle_cfi_check_fail_abort
+  __udelay
+  unlock_page
+  __unregister_chrdev
+  unregister_chrdev_region
+  unregister_netdevice_notifier
+  unregister_netdevice_queue
+  unregister_shrinker
+  up
+  up_read
+  up_write
+  usleep_range_state
+  vabits_actual
+  vfree
+  vmalloc
+  vmap
+  vmf_insert_pfn_prot
+  vsnprintf
+  vunmap
+  vzalloc
+  wait_for_completion_timeout
+  __wake_up
+  wake_up_process
+  __warn_printk
+
+# required by access_monitor.ko
+  devm_iounmap
+  devm_of_iomap
+  of_property_read_string_helper
+
+# required by arm_dsu_pmu.ko
+  bitmap_from_arr32
+  bitmap_print_to_pagebuf
+  cpumask_any_but
+  dev_fwnode
+  devm_kasprintf
+  of_count_phandle_with_args
+  of_cpu_node_to_id
+  of_fwnode_ops
+  perf_event_update_userpage
+  perf_pmu_migrate_context
+  perf_pmu_register
+  perf_pmu_unregister
+
+# required by arm_smmu_v3.ko
+  alloc_io_pgtable_ops
+  amba_bustype
+  bitmap_free
+  bus_set_iommu
+  device_match_fwnode
+  devm_add_action
+  driver_find_device
+  free_io_pgtable_ops
+  generic_device_group
+  generic_iommu_put_resv_regions
+  iommu_alloc_resv_region
+  iommu_device_register
+  iommu_device_sysfs_add
+  iommu_device_sysfs_remove
+  iommu_device_unregister
+  iommu_dma_get_resv_regions
+  iommu_fwspec_add_ids
+  iommu_fwspec_free
+  iommu_report_device_fault
+  of_find_node_with_property
+  of_parse_phandle_with_args
+  pci_ats_supported
+  pci_bus_type
+  pci_device_group
+  pci_disable_ats
+  pci_enable_ats
+  platform_bus_type
+  platform_msi_domain_alloc_irqs
+  platform_msi_domain_free_irqs
+  __xa_alloc
+  xa_erase
+
+# required by bcmdhd.ko
+  add_timer
+  alloc_etherdev_mqs
+  bitmap_parse
+  capable
+  complete_and_exit
+  del_timer
+  __dev_kfree_skb_any
+  disable_irq_nosync
+  down
+  free_netdev
+  get_random_bytes
+  get_random_u32
+  gpiod_direction_output_raw
+  gpio_free
+  gpio_to_desc
+  iwe_stream_add_event
+  iwe_stream_add_point
+  iwe_stream_add_value
+  __kfifo_free
+  __kfifo_in
+  __kfifo_init
+  __kfifo_out
+  kobject_uevent
+  __local_bh_enable_ip
+  napi_complete_done
+  napi_disable
+  napi_enable
+  napi_gro_receive
+  __napi_schedule
+  napi_schedule_prep
+  netdev_update_features
+  netif_napi_add
+  __netif_napi_del
+  netif_receive_skb
+  netif_rx
+  netif_tx_wake_queue
+  __netlink_kernel_create
+  netlink_kernel_release
+  nla_put_nohdr
+  __nlmsg_put
+  ns_to_timespec64
+  pci_alloc_irq_vectors_affinity
+  pci_enable_wake
+  pci_find_ext_capability
+  pci_free_irq_vectors
+  pci_load_and_free_saved_state
+  pci_load_saved_state
+  pci_read_config_dword
+  __pci_register_driver
+  pci_restore_state
+  pci_save_state
+  pci_set_master
+  pci_store_saved_state
+  pci_unregister_driver
+  pci_write_config_dword
+  __pm_relax
+  __pm_stay_awake
+  pm_wakeup_ws_event
+  pskb_expand_head
+  register_inetaddr_notifier
+  register_netdev
+  register_pm_notifier
+  register_reboot_notifier
+  rtc_time64_to_tm
+  sched_set_fifo_low
+  set_cpus_allowed_ptr
+  simple_strtol
+  simple_strtoul
+  skb_clone
+  skb_copy
+  skb_dequeue
+  skb_queue_purge
+  skb_queue_tail
+  sock_wfree
+  sprint_symbol
+  strcat
+  strchr
+  strncasecmp
+  strncat
+  strrchr
+  strsep
+  strspn
+  sys_tz
+  tasklet_init
+  tasklet_kill
+  __tasklet_schedule
+  unregister_inetaddr_notifier
+  unregister_netdev
+  unregister_pm_notifier
+  unregister_reboot_notifier
+  vprintk
+  wakeup_source_register
+  wakeup_source_unregister
+  wireless_send_event
+  work_busy
+
+# required by cfg80211.ko
+  bpf_trace_run10
+  bpf_trace_run6
+  bpf_trace_run7
+  bpf_trace_run8
+  crc32_le
+  debugfs_rename
+  __dev_change_net_namespace
+  __dev_get_by_index
+  dev_get_by_index
+  device_add
+  device_del
+  device_rename
+  do_trace_netlink_extack
+  flush_delayed_work
+  genlmsg_multicast_allns
+  genlmsg_put
+  genl_register_family
+  genl_unregister_family
+  get_net_ns_by_fd
+  get_net_ns_by_pid
+  inet_csk_get_port
+  init_uts_ns
+  key_create_or_update
+  key_put
+  keyring_alloc
+  kfree_sensitive
+  kmemdup
+  kobject_uevent_env
+  ktime_get_coarse_with_offset
+  kvfree_call_rcu
+  netdev_err
+  netlink_broadcast
+  netlink_register_notifier
+  netlink_unregister_notifier
+  net_ns_type_operations
+  nla_find
+  nla_memcpy
+  __nla_parse
+  nla_put_64bit
+  nla_reserve
+  __nla_validate
+  of_prop_next_u32
+  platform_device_register_full
+  __pskb_pull_tail
+  __put_net
+  register_pernet_device
+  request_firmware_nowait
+  rfkill_blocked
+  rfkill_resume_polling
+  rfkill_set_hw_state_reason
+  skb_add_rx_frag
+  skb_copy_bits
+  skb_put
+  skb_trim
+  __sock_create
+  sock_release
+  __sw_hweight16
+  __sw_hweight8
+  sysfs_create_link
+  sysfs_remove_link
+  system_power_efficient_wq
+  unregister_pernet_device
+  verify_pkcs7_signature
+  wireless_nlevent_flush
+
+# required by ci700.ko
+  __arm_smccc_smc
+  kernel_kobj
+  of_device_is_available
+  of_find_matching_node_and_match
+  PDE_DATA
+  proc_mkdir
+
+# required by cma_heap.ko
+  cma_get_name
+
+# required by dma-buf-test-exporter.ko
+  dma_buf_begin_cpu_access
+  dma_buf_end_cpu_access
+  dma_buf_fd
+  dma_map_sg_attrs
+
+# required by dwc3-smartsilicon.ko
+  device_set_wakeup_capable
+  irq_set_irq_wake
+  of_get_compatible_child
+  of_platform_depopulate
+  of_platform_populate
+  sysfs_create_groups
+  usb_speed_string
+
+# required by fr.ko
+  find_task_by_vpid
+  iommu_get_domain_for_dev
+  iommu_iova_to_phys
+  remove_proc_entry
+
+# required by hantrodec.ko
+  of_dma_configure_id
+  vmalloc_to_page
+
+# required by hantroenc.ko
+  __register_chrdev
+
+# required by i2c-designware-core.ko
+  i2c_add_numbered_adapter
+  i2c_generic_scl_recovery
+  i2c_recover_bus
+  regmap_update_bits_base
+
+# required by i2c-designware-platform.ko
+  device_get_match_data
+  devm_clk_get_optional
+  __devm_reset_control_get
+  i2c_del_adapter
+  i2c_parse_fw_timings
+  pm_runtime_set_autosuspend_delay
+  __pm_runtime_use_autosuspend
+  pm_suspend_global_flags
+  syscon_node_to_regmap
+
+# required by i2c-dev.ko
+  bus_register_notifier
+  bus_unregister_notifier
+  cdev_device_add
+  cdev_device_del
+  device_for_each_child
+  i2c_adapter_type
+  i2c_bus_type
+  i2c_for_each_dev
+  i2c_smbus_xfer
+  i2c_transfer_buffer_flags
+  i2c_verify_client
+
+# required by kutf.ko
+  debugfs_create_file_unsafe
+  debugfs_create_u32
+  strnchr
+  strpbrk
+
+# required by mali_kbase.ko
+  anon_inode_getfd
+  __arch_clear_user
+  __bitmap_andnot
+  __bitmap_equal
+  __bitmap_or
+  __bitmap_weight
+  __bitmap_xor
+  cache_line_size
+  clear_page
+  __clk_is_enabled
+  clk_notifier_register
+  clk_notifier_unregister
+  clk_set_rate
+  completion_done
+  debugfs_create_bool
+  devfreq_add_device
+  devfreq_cooling_unregister
+  devfreq_recommended_opp
+  devfreq_register_opp_notifier
+  devfreq_remove_device
+  devfreq_resume_device
+  devfreq_suspend_device
+  devfreq_unregister_opp_notifier
+  device_create_file
+  device_remove_file
+  dev_pm_opp_find_freq_ceil
+  dev_pm_opp_find_freq_exact
+  dev_pm_opp_find_freq_floor
+  dev_pm_opp_get_opp_count
+  dev_pm_opp_get_voltage
+  dev_pm_opp_of_add_table
+  dev_pm_opp_of_remove_table
+  dev_pm_opp_put
+  dev_pm_opp_put_regulators
+  dev_pm_opp_set_regulators
+  dma_buf_mmap
+  dma_fence_add_callback
+  dma_fence_context_alloc
+  dma_fence_default_wait
+  dma_fence_get_status
+  dma_fence_init
+  dma_fence_release
+  dma_fence_remove_callback
+  dma_fence_signal
+  dma_sync_single_for_cpu
+  downgrade_write
+  down_read_trylock
+  fd_install
+  find_get_pid
+  _find_next_bit
+  flush_workqueue
+  fput
+  generic_file_llseek
+  get_device
+  get_unused_fd_flags
+  get_user_pages
+  get_user_pages_fast
+  hrtimer_active
+  kobject_del
+  kstrndup
+  kstrtobool_from_user
+  kstrtouint_from_user
+  ktime_get_raw
+  ktime_get_raw_ts64
+  __lock_page
+  memchr
+  __mmdrop
+  module_put
+  msleep_interruptible
+  mutex_trylock
+  nonseekable_open
+  of_clk_get
+  of_devfreq_cooling_register_power
+  of_find_compatible_node
+  of_get_property
+  of_machine_is_compatible
+  of_property_count_elems_of_size
+  of_property_read_u64
+  of_property_read_variable_u64_array
+  of_property_read_variable_u8_array
+  param_array_ops
+  param_ops_byte
+  pid_task
+  pin_user_pages
+  pin_user_pages_remote
+  put_pid
+  _raw_spin_trylock
+  rb_first
+  rb_next
+  rb_prev
+  rb_replace_node
+  register_oom_notifier
+  regulator_disable
+  regulator_enable
+  regulator_get_optional
+  regulator_put
+  regulator_set_voltage
+  remap_vmalloc_range
+  __seq_open_private
+  seq_putc
+  seq_release_private
+  seq_write
+  set_page_dirty_lock
+  shmem_file_setup
+  strcspn
+  strscpy
+  sync_file_create
+  sync_file_get_fence
+  synchronize_irq
+  sysfs_remove_file_ns
+  system_highpri_wq
+  system_long_wq
+  thermal_zone_get_zone_by_name
+  _totalram_pages
+  __traceiter_gpu_mem_total
+  trace_output_call
+  __tracepoint_gpu_mem_total
+  trace_print_flags_seq
+  trace_print_symbols_seq
+  try_module_get
+  unmap_mapping_range
+  unpin_user_page
+  unregister_oom_notifier
+  vmalloc_user
+  wait_for_completion
+
+# required by pcie-smsi.ko
+  cpumask_next_and
+  device_init_wakeup
+  device_release_driver
+  devm_pci_alloc_host_bridge
+  devm_pci_remap_cfg_resource
+  devm_release_resource
+  generic_handle_domain_irq
+  generic_handle_irq
+  gpiod_get_value
+  gpiod_set_value_cansleep
+  handle_edge_irq
+  handle_simple_irq
+  __irq_alloc_descs
+  irq_chip_ack_parent
+  irq_chip_mask_parent
+  irq_chip_unmask_parent
+  irq_dispose_mapping
+  __irq_domain_add
+  irq_domain_associate_many
+  irq_domain_get_irq_data
+  irq_domain_remove
+  irq_domain_set_info
+  irq_domain_update_bus_token
+  __irq_resolve_mapping
+  irq_set_chained_handler_and_data
+  irq_set_chip_and_handler_name
+  irq_set_chip_data
+  irq_to_desc
+  nr_irqs
+  of_match_device
+  of_pci_get_max_link_speed
+  pci_disable_link_state
+  pcie_capability_clear_and_set_word
+  pcie_link_speed
+  pci_generic_config_read
+  pci_generic_config_write
+  pci_host_probe
+  pci_lock_rescan_remove
+  pci_msi_create_irq_domain
+  pci_msi_enabled
+  pci_msi_mask_irq
+  pci_msi_unmask_irq
+  pci_pio_to_address
+  pci_read_config_byte
+  pci_read_config_word
+  pci_remove_root_bus
+  pci_stop_root_bus
+  pci_unlock_rescan_remove
+  platform_get_resource_byname
+  simple_write_to_buffer
+
+# required by smsi-mailbox-ap2rpm.ko
+  mbox_free_channel
+  mbox_request_channel_byname
+
+# required by smsi-mailbox.ko
+  devm_mbox_controller_register
+  mbox_chan_received_data
+  __memcpy_fromio
+  __memcpy_toio
+
+# required by smsi_busmon.ko
+  arch_timer_read_counter
+
+# required by smsi_wdt.ko
+  autoremove_wake_function
+  irq_force_affinity
+  kthread_bind
+  of_irq_parse_one
+  prepare_to_wait
+  sched_set_fifo
+  watchdog_init_timeout
+  watchdog_register_device
+  watchdog_set_restart_priority
+  watchdog_unregister_device
+
+# required by system_heap.ko
+  dmabuf_page_pool_alloc
+  dmabuf_page_pool_create
+  dmabuf_page_pool_destroy
+  dmabuf_page_pool_free
+  dma_heap_get_dev
+  __sg_page_iter_next
+  __sg_page_iter_start
+
+# required by vvcam_dw200.ko
+  devm_free_irq
+
+# required by vvcam_sensor.ko
+  i2c_new_client_device
+  i2c_unregister_device
+
+# required by zram.ko
+  __alloc_percpu
+  bio_endio
+  bio_end_io_acct_remapped
+  bio_start_io_acct
+  __blk_alloc_disk
+  blk_cleanup_disk
+  blk_queue_flag_clear
+  blk_queue_flag_set
+  blk_queue_io_min
+  blk_queue_io_opt
+  blk_queue_logical_block_size
+  blk_queue_max_discard_sectors
+  blk_queue_max_write_zeroes_sectors
+  blk_queue_physical_block_size
+  crypto_alloc_base
+  crypto_comp_compress
+  crypto_comp_decompress
+  crypto_destroy_tfm
+  crypto_has_alg
+  del_gendisk
+  device_add_disk
+  disk_end_io_acct
+  disk_start_io_acct
+  flush_dcache_page
+  free_percpu
+  fsync_bdev
+  idr_alloc
+  idr_destroy
+  idr_find
+  idr_for_each
+  idr_remove
+  kstrtou16
+  memparse
+  memset64
+  __num_online_cpus
+  page_endio
+  __register_blkdev
+  set_capacity
+  set_capacity_and_notify
+  unregister_blkdev
+  zs_compact
+  zs_create_pool
+  zs_destroy_pool
+  zs_free
+  zs_get_total_pages
+  zs_huge_class_size
+  zs_malloc
+  zs_map_object
+  zs_pool_stats
+  zs_unmap_object
+
+# required by zsmalloc.ko
+  alloc_anon_inode
+  contig_page_data
+  dec_zone_page_state
+  inc_zone_page_state
+  init_pseudo
+  kern_mount
+  kern_unmount
+  kill_anon_super
+  kmem_cache_alloc
+  kmem_cache_create
+  kmem_cache_destroy
+  kmem_cache_free
+  page_mapping
+  _raw_read_lock
+  _raw_read_unlock
+  _raw_write_lock
+  _raw_write_unlock
+  wait_on_page_bit
diff --git a/android/abi_gki_aarch64_mtk b/android/abi_gki_aarch64_mtk
index f3916ab..10f50a7 100644
--- a/android/abi_gki_aarch64_mtk
+++ b/android/abi_gki_aarch64_mtk
@@ -1249,6 +1249,7 @@
   __netdev_alloc_skb
   netdev_err
   netdev_info
+  netdev_upper_get_next_dev_rcu
   netdev_warn
   netif_carrier_off
   netif_carrier_on
@@ -1419,6 +1420,7 @@
   perf_trace_run_bpf_submit
   pfn_is_map_memory
   phy_attached_info
+  phy_basic_features
   phy_connect
   phy_disconnect
   phy_do_ioctl_running
@@ -1426,6 +1428,7 @@
   phy_ethtool_nway_reset
   phy_ethtool_set_link_ksettings
   phy_exit
+  phy_gbit_features
   phy_get
   phy_init
   phy_loopback
@@ -2153,6 +2156,7 @@
   tty_chars_in_buffer
   tty_driver_flush_buffer
   tty_flip_buffer_push
+  tty_get_char_size
   tty_insert_flip_string_fixed_flag
   tty_ldisc_flush
   tty_register_ldisc
@@ -2304,6 +2308,7 @@
   usbnet_disconnect
   usbnet_get_drvinfo
   usbnet_get_endpoints
+  usbnet_get_ethernet_addr
   usbnet_get_link
   usbnet_get_link_ksettings_mii
   usbnet_get_msglevel
diff --git a/android/abi_gki_aarch64_oplus b/android/abi_gki_aarch64_oplus
index 32e3fdf..c340ea3 100644
--- a/android/abi_gki_aarch64_oplus
+++ b/android/abi_gki_aarch64_oplus
@@ -415,6 +415,9 @@
   __traceiter_android_vh_meminfo_proc_show
   __traceiter_android_vh_modify_thermal_cpu_get_power
   __traceiter_android_vh_mutex_init
+  __traceiter_android_vh_mutex_can_spin_on_owner
+  __traceiter_android_vh_mutex_opt_spin_finish
+  __traceiter_android_vh_mutex_opt_spin_start
   __traceiter_android_vh_page_referenced_check_bypass
   __traceiter_android_vh_page_should_be_protected
   __traceiter_android_vh_page_trylock_clear
@@ -427,6 +430,9 @@
   __traceiter_android_vh_record_rtmutex_lock_starttime
   __traceiter_android_vh_record_rwsem_lock_starttime
   __traceiter_android_vh_rmqueue
+  __traceiter_android_vh_rwsem_can_spin_on_owner
+  __traceiter_android_vh_rwsem_opt_spin_finish
+  __traceiter_android_vh_rwsem_opt_spin_start
   __traceiter_android_vh_rwsem_wake_finish
   __traceiter_android_vh_save_track_hash
   __traceiter_android_vh_sched_show_task
@@ -500,6 +506,9 @@
   __tracepoint_android_vh_meminfo_proc_show
   __tracepoint_android_vh_modify_thermal_cpu_get_power
   __tracepoint_android_vh_mutex_init
+  __tracepoint_android_vh_mutex_can_spin_on_owner
+  __tracepoint_android_vh_mutex_opt_spin_finish
+  __tracepoint_android_vh_mutex_opt_spin_start
   __tracepoint_android_vh_page_referenced_check_bypass
   __tracepoint_android_vh_page_should_be_protected
   __tracepoint_android_vh_page_trylock_clear
@@ -512,6 +521,9 @@
   __tracepoint_android_vh_record_rtmutex_lock_starttime
   __tracepoint_android_vh_record_rwsem_lock_starttime
   __tracepoint_android_vh_rmqueue
+  __tracepoint_android_vh_rwsem_can_spin_on_owner
+  __tracepoint_android_vh_rwsem_opt_spin_finish
+  __tracepoint_android_vh_rwsem_opt_spin_start
   __tracepoint_android_vh_rwsem_wake_finish
   __tracepoint_android_vh_sched_show_task
   __tracepoint_android_vh_save_track_hash
diff --git a/android/abi_gki_aarch64_pasa b/android/abi_gki_aarch64_pasa
index b5c49c4..425dbd7 100644
--- a/android/abi_gki_aarch64_pasa
+++ b/android/abi_gki_aarch64_pasa
@@ -14,3 +14,5 @@
   hid_report_raw_event
   hid_unregister_driver
   hidinput_calc_abs_res
+  iio_trigger_generic_data_rdy_poll
+  input_device_enabled
diff --git a/android/abi_gki_aarch64_qcom b/android/abi_gki_aarch64_qcom
index 2c0ddca..b324fc7 100644
--- a/android/abi_gki_aarch64_qcom
+++ b/android/abi_gki_aarch64_qcom
@@ -89,6 +89,7 @@
   __blk_alloc_disk
   blk_cleanup_disk
   blk_cleanup_queue
+  blkdev_compat_ptr_ioctl
   blkdev_get_by_dev
   __blkdev_issue_discard
   blkdev_put
@@ -140,7 +141,6 @@
   blk_set_stacking_limits
   blk_start_plug
   blk_sync_queue
-  blkdev_compat_ptr_ioctl
   blocking_notifier_call_chain
   blocking_notifier_chain_register
   blocking_notifier_chain_unregister
@@ -258,6 +258,7 @@
   contig_page_data
   _copy_from_iter
   copy_from_kernel_nofault
+  copy_page
   __cpu_active_mask
   cpu_bit_bitmap
   cpufreq_cpu_get
@@ -320,6 +321,7 @@
   crypto_destroy_tfm
   crypto_enqueue_request
   crypto_has_alg
+  crypto_inc
   crypto_init_queue
   crypto_unregister_ahash
   crypto_unregister_skcipher
@@ -418,6 +420,7 @@
   devm_gpio_request_one
   devm_hwspin_lock_register
   devm_iio_channel_get
+  devm_iio_channel_get_all
   devm_iio_device_alloc
   __devm_iio_device_register
   devm_input_allocate_device
@@ -491,10 +494,10 @@
   dev_pm_opp_of_cpumask_remove_table
   dev_pm_opp_of_find_icc_paths
   dev_pm_opp_of_register_em
-  dev_pm_opp_remove
   dev_pm_opp_of_remove_table
   dev_pm_opp_put
   dev_pm_opp_put_clkname
+  dev_pm_opp_remove
   dev_pm_opp_remove_all_dynamic
   dev_pm_opp_set_clkname
   dev_pm_opp_set_opp
@@ -813,6 +816,7 @@
   get_unused_fd_flags
   get_user_ifreq
   get_zeroed_page
+  gf128mul_lle
   gic_cpu_init
   gic_dist_init
   gic_dist_wait_for_rwp
@@ -834,6 +838,7 @@
   gpiod_direction_input
   gpiod_direction_output
   gpiod_direction_output_raw
+  gpiod_get_direction
   gpiod_get_optional
   gpiod_get_raw_value
   gpiod_get_value
@@ -929,16 +934,35 @@
   idr_preload
   idr_remove
   idr_replace
+  iio_alloc_pollfunc
   iio_buffer_init
   iio_buffer_put
   iio_channel_get
+  iio_channel_get_all
   iio_channel_release
+  iio_channel_release_all
+  iio_dealloc_pollfunc
   iio_device_attach_buffer
   iio_device_claim_direct_mode
+  iio_device_id
   iio_device_release_direct_mode
+  iio_get_time_ns
+  iio_kfifo_allocate
   iio_push_event
   iio_push_to_buffers
   iio_read_channel_processed
+  iio_read_channel_raw
+  iio_read_const_attr
+  iio_trigger_alloc
+  iio_triggered_buffer_cleanup
+  iio_triggered_buffer_setup_ext
+  iio_trigger_free
+  iio_trigger_notify_done
+  iio_trigger_poll
+  __iio_trigger_register
+  iio_trigger_unregister
+  iio_update_buffers
+  iio_validate_scan_mask_onehot
   iio_write_channel_raw
   import_iovec
   in4_pton
@@ -973,6 +997,8 @@
   input_register_handler
   input_set_abs_params
   input_set_capability
+  input_set_poll_interval
+  input_setup_polling
   input_unregister_handle
   input_unregister_handler
   interval_tree_insert
@@ -1064,6 +1090,8 @@
   irq_set_chained_handler_and_data
   irq_set_chip_and_handler_name
   irq_set_chip_data
+  __irq_set_handler
+  irq_set_handler_data
   irq_set_irqchip_state
   irq_set_irq_type
   irq_set_irq_wake
@@ -1252,8 +1280,8 @@
   misc_register
   mmc_cqe_request_done
   mmc_execute_tuning
-  mmc_get_ext_csd
   mmc_get_card
+  mmc_get_ext_csd
   mmc_hs200_tuning
   mmc_issue_type
   mmc_of_parse
@@ -1265,8 +1293,8 @@
   mmc_regulator_set_vqmmc
   mmc_retune_hold
   mmc_retune_release
-  mmc_select_card
   mmc_select_bus_width
+  mmc_select_card
   mmc_select_hs
   mmc_select_hs400
   mmc_select_hs_ddr
@@ -1814,6 +1842,7 @@
   rpmsg_get_signals
   rpmsg_poll
   rpmsg_register_device
+  rpmsg_rx_done
   rpmsg_send
   rpmsg_set_signals
   rpmsg_trysend
@@ -2248,6 +2277,7 @@
   __traceiter_android_vh_save_cpu_resume
   __traceiter_android_vh_save_hib_resume_bdev
   __traceiter_android_vh_scheduler_tick
+  __traceiter_android_vh_sd_update_bus_speed_mode
   __traceiter_android_vh_show_resume_epoch_val
   __traceiter_android_vh_show_suspend_epoch_val
   __traceiter_android_vh_skip_swap_map_write
@@ -2268,6 +2298,8 @@
   __traceiter_ipi_raise
   __traceiter_irq_handler_entry
   __traceiter_map
+  __traceiter_rwmmio_read
+  __traceiter_rwmmio_write
   __traceiter_sched_overutilized_tp
   __traceiter_sched_switch
   __traceiter_suspend_resume
@@ -2367,6 +2399,7 @@
   __tracepoint_android_vh_save_cpu_resume
   __tracepoint_android_vh_save_hib_resume_bdev
   __tracepoint_android_vh_scheduler_tick
+  __tracepoint_android_vh_sd_update_bus_speed_mode
   __tracepoint_android_vh_show_resume_epoch_val
   __tracepoint_android_vh_show_suspend_epoch_val
   __tracepoint_android_vh_skip_swap_map_write
@@ -2390,6 +2423,8 @@
   tracepoint_probe_register
   tracepoint_probe_register_prio
   tracepoint_probe_unregister
+  __tracepoint_rwmmio_read
+  __tracepoint_rwmmio_write
   __tracepoint_sched_overutilized_tp
   __tracepoint_sched_switch
   __tracepoint_suspend_resume
@@ -2503,6 +2538,8 @@
   usb_free_coherent
   usb_function_register
   usb_function_unregister
+  usb_gadget_connect
+  usb_gadget_disconnect
   usb_gadget_wakeup
   usb_ifnum_to_if
   usb_interface_id
@@ -2630,3 +2667,4 @@
   xsk_tx_peek_desc
   xsk_tx_release
   xsk_uses_need_wakeup
+  zap_vma_ptes
diff --git a/android/abi_gki_aarch64_sunxi b/android/abi_gki_aarch64_sunxi
index 8c99442..63183e8 100644
--- a/android/abi_gki_aarch64_sunxi
+++ b/android/abi_gki_aarch64_sunxi
@@ -287,6 +287,7 @@
   devm_nvmem_register
   devm_of_clk_add_hw_provider
   devm_of_iomap
+  devm_pci_remap_cfgspace
   devm_pinctrl_get
   devm_pinctrl_put
   devm_pinctrl_register
@@ -894,6 +895,7 @@
   of_nvmem_cell_get
   of_parse_phandle
   of_parse_phandle_with_args
+  of_pci_get_max_link_speed
   of_property_count_elems_of_size
   of_property_match_string
   of_property_read_string
@@ -941,6 +943,7 @@
   pci_unregister_driver
   pci_write_config_byte
   pci_write_config_word
+  pcie_link_speed
   PDE_DATA
   __per_cpu_offset
   perf_trace_buf_alloc
diff --git a/android/abi_gki_aarch64_unisoc b/android/abi_gki_aarch64_unisoc
index e01c806..7244a96 100644
--- a/android/abi_gki_aarch64_unisoc
+++ b/android/abi_gki_aarch64_unisoc
@@ -1147,6 +1147,7 @@
   __traceiter_android_vh_mmc_update_partition_status
   __traceiter_android_vh_modify_thermal_request_freq
   __traceiter_android_vh_modify_thermal_target_freq
+  __traceiter_android_vh_modify_thermal_throttle_update
   __traceiter_android_vh_scheduler_tick
   __traceiter_android_vh_set_wake_flags
   __traceiter_android_vh_thermal_power_cap
@@ -1242,6 +1243,7 @@
   __tracepoint_android_vh_mmc_update_partition_status
   __tracepoint_android_vh_modify_thermal_request_freq
   __tracepoint_android_vh_modify_thermal_target_freq
+  __tracepoint_android_vh_modify_thermal_throttle_update
   __tracepoint_android_vh_scheduler_tick
   __tracepoint_android_vh_set_wake_flags
   __tracepoint_android_vh_thermal_power_cap
diff --git a/android/abi_gki_aarch64_vivo b/android/abi_gki_aarch64_vivo
index 0660a734..b1a97e2 100644
--- a/android/abi_gki_aarch64_vivo
+++ b/android/abi_gki_aarch64_vivo
@@ -335,6 +335,7 @@
   del_gendisk
   del_timer
   del_timer_sync
+  dentry_path_raw
   destroy_workqueue
   dev_alloc_name
   dev_coredumpm
diff --git a/android/abi_gki_aarch64_xiaomi b/android/abi_gki_aarch64_xiaomi
index b267fba..a318a00 100644
--- a/android/abi_gki_aarch64_xiaomi
+++ b/android/abi_gki_aarch64_xiaomi
@@ -14,6 +14,8 @@
 #required by memory module
   blk_execute_rq
   blk_rq_map_kern
+  nr_free_buffer_pages
+  mmc_set_blocklen
   scsi_device_lookup
   scsi_host_lookup
   scsi_host_put
@@ -104,6 +106,21 @@
   __traceiter_android_vh_direct_io_update_bio
   __traceiter_android_vh_loop_prepare_cmd
 
+#required by bfq module
+  __blkg_prfill_rwstat
+  blkg_rwstat_recursive_sum
+  blkg_prfill_rwstat
+  blkg_conf_finish
+  blkg_conf_prep
+  __blkg_prfill_u64
+  blkcg_print_blkgs
+  blkg_rwstat_exit
+  blkg_rwstat_init
+  percpu_counter_add_batch
+  io_cgrp_subsys_on_dfl_key
+  ioc_lookup_icq
+  bdi_dev_name
+
 #required by cs35l41 module
   regmap_raw_write_async
   snd_soc_bytes_tlv_callback
@@ -523,3 +540,7 @@
 
   __traceiter_android_rvh_ctl_dirty_rate
   __tracepoint_android_rvh_ctl_dirty_rate
+
+#required by io module
+  __traceiter_android_vh_psi_group
+  __tracepoint_android_vh_psi_group
diff --git a/android/abi_gki_aarch64_zeku b/android/abi_gki_aarch64_zeku
new file mode 100644
index 0000000..3a8ca98
--- /dev/null
+++ b/android/abi_gki_aarch64_zeku
@@ -0,0 +1,1262 @@
+[abi_symbol_list]
+# commonly used symbols
+  access_process_vm
+  add_uevent_var
+  alloc_chrdev_region
+  __alloc_pages
+  __alloc_percpu
+  __alloc_skb
+  alloc_workqueue
+  __arch_copy_from_user
+  __arch_copy_to_user
+  arm64_const_caps_ready
+  arm64_use_ng_mappings
+  __arm_smccc_smc
+  atomic_notifier_chain_register
+  atomic_notifier_chain_unregister
+  bio_endio
+  bitmap_free
+  bitmap_parselist
+  bitmap_print_to_pagebuf
+  bitmap_zalloc
+  __blk_alloc_disk
+  blk_cleanup_disk
+  blk_queue_flag_clear
+  blk_queue_flag_set
+  blk_queue_physical_block_size
+  bus_register
+  bus_unregister
+  cancel_work_sync
+  cdev_add
+  cdev_del
+  cdev_init
+  __cfi_slowpath_diag
+  __check_object_size
+  __class_create
+  class_destroy
+  __class_register
+  class_unregister
+  clk_disable
+  clk_enable
+  clk_get_rate
+  clk_prepare
+  clk_put
+  clk_set_rate
+  clk_unprepare
+  compat_ptr_ioctl
+  complete
+  component_add
+  component_del
+  __const_udelay
+  contig_page_data
+  cpu_bit_bitmap
+  __cpuhp_remove_state
+  __cpuhp_setup_state
+  cpu_hwcap_keys
+  cpu_hwcaps
+  cpumask_next
+  cpu_number
+  __cpu_online_mask
+  __cpu_possible_mask
+  __cpu_present_mask
+  crc32_le
+  crypto_alloc_base
+  crypto_alloc_shash
+  crypto_comp_compress
+  crypto_comp_decompress
+  crypto_destroy_tfm
+  debugfs_create_dir
+  debugfs_create_file
+  debugfs_create_regset32
+  debugfs_remove
+  default_llseek
+  delayed_work_timer_fn
+  del_gendisk
+  destroy_workqueue
+  dev_driver_string
+  _dev_err
+  device_add
+  device_add_disk
+  device_create
+  device_create_file
+  device_del
+  device_destroy
+  device_for_each_child
+  device_get_match_data
+  device_initialize
+  device_property_present
+  device_property_read_u32_array
+  device_register
+  device_remove_file
+  device_unregister
+  _dev_info
+  devm_clk_get
+  devm_clk_put
+  devm_free_irq
+  devm_ioremap_resource
+  devm_ioremap_wc
+  devm_kfree
+  devm_kmalloc
+  devm_kstrdup
+  devm_mbox_controller_register
+  devm_platform_get_and_ioremap_resource
+  devm_platform_ioremap_resource
+  devm_platform_ioremap_resource_byname
+  __devm_regmap_init
+  __devm_regmap_init_i2c
+  devm_regulator_get
+  devm_regulator_register
+  devm_request_threaded_irq
+  __devm_reset_control_get
+  devm_thermal_zone_of_sensor_register
+  _dev_notice
+  _dev_printk
+  dev_set_name
+  _dev_warn
+  disable_irq
+  disable_irq_nosync
+  dma_alloc_attrs
+  dma_buf_attach
+  dma_buf_begin_cpu_access
+  dma_buf_detach
+  dma_buf_end_cpu_access
+  dma_buf_export
+  dma_buf_fd
+  dma_buf_get
+  dma_buf_map_attachment
+  dma_buf_put
+  dma_buf_unmap_attachment
+  dma_buf_vmap
+  dma_buf_vunmap
+  dma_free_attrs
+  dma_heap_add
+  dma_heap_find
+  dma_heap_get_name
+  dmam_alloc_attrs
+  dma_map_page_attrs
+  dma_map_sgtable
+  dma_set_coherent_mask
+  dma_set_mask
+  dma_sync_sg_for_cpu
+  dma_sync_sg_for_device
+  dma_sync_single_for_device
+  dma_unmap_page_attrs
+  dma_unmap_sg_attrs
+  down_read
+  down_write
+  d_path
+  driver_create_file
+  driver_register
+  driver_unregister
+  dump_stack
+  enable_irq
+  _find_first_zero_bit
+  finish_wait
+  flush_dcache_page
+  flush_work
+  flush_workqueue
+  free_irq
+  __free_pages
+  free_pages
+  free_percpu
+  generic_handle_irq
+  genlmsg_put
+  genl_register_family
+  genl_unregister_family
+  get_cpu_device
+  get_device
+  __get_free_pages
+  get_zeroed_page
+  gic_nonsecure_priorities
+  handle_edge_irq
+  handle_level_irq
+  hrtimer_cancel
+  hrtimer_init
+  hrtimer_start_range_ns
+  i2c_del_driver
+  i2c_register_driver
+  idr_alloc
+  idr_destroy
+  idr_find
+  idr_remove
+  init_net
+  __init_rwsem
+  __init_swait_queue_head
+  init_task
+  init_timer_key
+  init_wait_entry
+  __init_waitqueue_head
+  iommu_get_domain_for_dev
+  iommu_unmap
+  __ioremap
+  iounmap
+  __irq_domain_add
+  irq_domain_remove
+  irq_get_irq_data
+  irq_of_parse_and_map
+  __irq_resolve_mapping
+  irq_set_irq_wake
+  is_vmalloc_addr
+  jiffies
+  jiffies_to_msecs
+  kasan_flag_enabled
+  kasprintf
+  kernel_kobj
+  kfree
+  kfree_skb
+  kimage_voffset
+  __kmalloc
+  kmalloc_caches
+  kmalloc_order_trace
+  kmem_cache_alloc_trace
+  kmemdup
+  kobject_init_and_add
+  kobject_put
+  kstrtoint
+  kstrtou16
+  kstrtouint
+  kstrtoull
+  kthread_create_on_node
+  __kthread_init_worker
+  kthread_should_stop
+  kthread_stop
+  kthread_worker_fn
+  ktime_get
+  ktime_get_mono_fast_ns
+  ktime_get_real_ts64
+  ktime_get_with_offset
+  kvfree
+  kvmalloc_node
+  __list_add_valid
+  __list_del_entry_valid
+  mbox_free_channel
+  mbox_request_channel
+  memcpy
+  __memcpy_toio
+  memremap
+  mem_section
+  memset
+  memstart_addr
+  memunmap
+  misc_deregister
+  misc_register
+  module_layout
+  __msecs_to_jiffies
+  msleep
+  __mutex_init
+  mutex_is_locked
+  mutex_lock
+  mutex_unlock
+  netlink_unicast
+  nla_put
+  nr_cpu_ids
+  __num_online_cpus
+  of_address_to_resource
+  of_clk_get_by_name
+  of_device_is_available
+  of_dma_is_coherent
+  of_find_compatible_node
+  of_find_device_by_node
+  of_find_property
+  of_get_child_by_name
+  of_get_property
+  of_get_regulator_init_data
+  of_iomap
+  of_match_device
+  of_match_node
+  of_n_addr_cells
+  of_n_size_cells
+  of_parse_phandle
+  of_parse_phandle_with_fixed_args
+  of_phandle_iterator_init
+  of_phandle_iterator_next
+  of_platform_depopulate
+  of_platform_populate
+  of_property_count_elems_of_size
+  of_property_match_string
+  of_property_read_string
+  of_property_read_string_helper
+  of_property_read_u32_index
+  of_property_read_u64
+  of_property_read_variable_u32_array
+  of_property_read_variable_u8_array
+  of_reserved_mem_lookup
+  page_endio
+  panic
+  panic_notifier_list
+  param_ops_bool
+  param_ops_int
+  param_ops_uint
+  pci_disable_device
+  pci_enable_device
+  pci_irq_vector
+  pci_read_config_dword
+  __pci_register_driver
+  pci_unregister_driver
+  PDE_DATA
+  __per_cpu_offset
+  platform_bus_type
+  platform_device_unregister
+  __platform_driver_register
+  platform_driver_unregister
+  platform_get_irq
+  platform_get_irq_byname
+  platform_get_resource
+  platform_get_resource_byname
+  __pm_runtime_disable
+  pm_runtime_enable
+  __pm_runtime_idle
+  __pm_runtime_resume
+  pm_runtime_set_autosuspend_delay
+  __pm_runtime_set_status
+  __pm_runtime_suspend
+  __pm_runtime_use_autosuspend
+  preempt_schedule
+  preempt_schedule_notrace
+  prepare_to_wait_event
+  print_hex_dump
+  _printk
+  proc_create
+  proc_create_data
+  proc_mkdir
+  proc_remove
+  put_device
+  __put_page
+  __put_task_struct
+  queue_delayed_work_on
+  queue_work_on
+  ___ratelimit
+  _raw_read_lock
+  _raw_read_unlock
+  _raw_spin_lock
+  _raw_spin_lock_bh
+  _raw_spin_lock_irqsave
+  _raw_spin_unlock
+  _raw_spin_unlock_bh
+  _raw_spin_unlock_irqrestore
+  _raw_write_lock
+  _raw_write_unlock
+  __rcu_read_lock
+  __rcu_read_unlock
+  refcount_warn_saturate
+  __register_blkdev
+  register_chrdev_region
+  register_restart_handler
+  __register_rpmsg_driver
+  regmap_read
+  regmap_update_bits_base
+  regmap_write
+  regulator_disable
+  regulator_enable
+  regulator_is_enabled
+  regulator_set_voltage
+  remap_pfn_range
+  remove_proc_entry
+  request_threaded_irq
+  reset_control_assert
+  reset_control_deassert
+  rpmsg_create_ept
+  rpmsg_register_device
+  rpmsg_send
+  rpmsg_trysend
+  rproc_add
+  rproc_add_carveout
+  rproc_alloc
+  rproc_boot
+  rproc_del
+  rproc_elf_get_boot_addr
+  rproc_elf_load_rsc_table
+  rproc_elf_load_segments
+  rproc_elf_sanity_check
+  rproc_free
+  rproc_mem_entry_init
+  rproc_of_resm_mem_entry_init
+  rproc_vq_interrupt
+  runqueues
+  sched_clock
+  sched_set_fifo
+  schedule
+  schedule_timeout
+  scnprintf
+  seq_lseek
+  seq_printf
+  seq_puts
+  seq_read
+  seq_release
+  seq_write
+  set_capacity
+  set_cpus_allowed_ptr
+  sg_alloc_table
+  sg_copy_to_buffer
+  sg_free_table
+  sg_init_one
+  sg_nents
+  sg_next
+  __sg_page_iter_next
+  __sg_page_iter_start
+  simple_read_from_buffer
+  single_open
+  single_release
+  skb_dequeue
+  skb_put
+  skb_queue_tail
+  snprintf
+  __spi_register_driver
+  spi_sync
+  sprintf
+  sscanf
+  __stack_chk_fail
+  stack_trace_save
+  strchr
+  strcmp
+  strcpy
+  strim
+  strlcat
+  strlcpy
+  strlen
+  strncmp
+  strncpy
+  strnlen
+  strscpy
+  strstr
+  __sw_hweight64
+  syscon_regmap_lookup_by_phandle
+  sysfs_create_group
+  sysfs_emit
+  sysfs_remove_group
+  sysfs_streq
+  system_wq
+  sys_tz
+  tasklet_init
+  __tasklet_schedule
+  thermal_zone_device_update
+  tracepoint_probe_register
+  tracepoint_probe_unregister
+  __ubsan_handle_cfi_check_fail_abort
+  __udelay
+  unregister_blkdev
+  unregister_chrdev_region
+  unregister_rpmsg_driver
+  up_read
+  up_write
+  usleep_range_state
+  vabits_actual
+  vfree
+  vmalloc
+  vmalloc_to_page
+  vmap
+  vscnprintf
+  vsnprintf
+  vunmap
+  vzalloc
+  wait_for_completion
+  wait_for_completion_interruptible
+  wait_for_completion_interruptible_timeout
+  wait_for_completion_timeout
+  __wake_up
+  wake_up_process
+  __warn_printk
+  __xa_alloc
+  xa_erase
+
+# required by ccree.ko
+  bcmp
+  crypto_authenc_extractkeys
+  crypto_register_aead
+  crypto_register_ahash
+  crypto_register_skcipher
+  crypto_shash_digest
+  crypto_unregister_aead
+  crypto_unregister_ahash
+  crypto_unregister_skcipher
+  debugfs_create_bool
+  des_expand_key
+  devm_clk_get_optional
+  dma_map_sg_attrs
+  dma_pool_alloc
+  dma_pool_create
+  dma_pool_destroy
+  dma_pool_free
+  dma_supported
+  dma_sync_single_for_cpu
+  kfree_sensitive
+  of_device_get_match_data
+  sg_copy_buffer
+  sg_nents_for_len
+  sg_zero_buffer
+  tasklet_kill
+
+# required by chunk_heap.ko
+  gen_pool_add_owner
+  gen_pool_create
+  gen_pool_dma_alloc_align
+  gen_pool_free_owner
+  of_property_read_u64_index
+
+# required by dmabuf_monitor.ko
+  dma_heap_put
+  get_each_dmabuf
+
+# required by dw_timer.ko
+  clockevent_delta2ns
+  clockevents_register_device
+  clocks_calc_mult_shift
+  __clocksource_register_scale
+  of_find_matching_node_and_match
+  __of_reset_control_get
+  sched_clock_register
+
+# required by dwc3-zeku.ko
+  device_set_wakeup_capable
+  platform_device_add
+  platform_device_alloc
+  platform_device_del
+  platform_device_put
+
+# required by fbox.ko
+  down_interruptible
+  find_pid_ns
+  pid_task
+  rtc_time64_to_tm
+  seq_open_private
+  seq_release_private
+  strncat
+  task_active_pid_ns
+  up
+  vmalloc_user
+
+# required by feng-regulator.ko
+  rdev_get_drvdata
+
+# required by ffa-module.ko
+  alloc_pages_exact
+  arm_smccc_1_1_get_conduit
+  arm_smccc_1_2_hvc
+  arm_smccc_1_2_smc
+  arm_smccc_get_version
+  bus_find_device
+  bus_for_each_dev
+  device_match_any
+  free_pages_exact
+  uuid_null
+  uuid_parse
+
+# required by fs_monitor.ko
+  get_fs_type
+  iterate_supers_type
+  __traceiter_wbc_writepage
+  __tracepoint_wbc_writepage
+
+# required by gnpu-driver.ko
+  dma_heap_buffer_alloc
+  init_iova_domain
+  iommu_domain_alloc
+  iommu_domain_free
+  iommu_present
+  iova_cache_get
+  iova_cache_put
+  netlink_broadcast
+  nonseekable_open
+  of_device_is_compatible
+  xa_load
+
+# required by hang_monitor.ko
+  find_get_pid
+  get_pid_task
+  put_pid
+  tasklist_lock
+  __task_pid_nr_ns
+
+# required by i2c.ko
+  devm_gpiod_get_optional
+  i2c_add_numbered_adapter
+  i2c_del_adapter
+  i2c_generic_scl_recovery
+  i2c_parse_fw_timings
+  i2c_recover_bus
+  pm_suspend_global_flags
+  syscon_node_to_regmap
+
+# required by i3c-master-zeku.ko
+  i3c_master_get_free_addr
+  i3c_master_register
+  i3c_master_set_info
+  i3c_master_unregister
+
+# required by mailbox.ko
+  irq_modify_status
+  irq_set_chip_and_handler_name
+  irq_set_chip_data
+  of_count_phandle_with_args
+  of_find_node_with_property
+  of_parse_phandle_with_args
+
+# required by maricam_mem_mgr.ko
+  dma_heap_bufferfd_alloc
+
+# required by mcDrvModule.ko
+  blocking_notifier_call_chain
+  blocking_notifier_chain_register
+  blocking_notifier_chain_unregister
+  crypto_shash_final
+  crypto_shash_update
+  debugfs_create_u32
+  freezing_slow_path
+  get_task_mm
+  krealloc
+  kstrtol_from_user
+  kstrtouint_from_user
+  kthread_queue_work
+  ktime_get_raw_ts64
+  mmput
+  pin_user_pages
+  __refrigerator
+  release_pages
+  sg_alloc_table_from_pages_segment
+  sg_miter_next
+  sg_miter_start
+  sg_miter_stop
+  system_freezing_cnt
+  unpin_user_page
+  wait_for_completion_killable
+
+# required by memory_monitor.ko
+  __traceiter_android_vh_alloc_pages_slowpath
+  __tracepoint_android_vh_alloc_pages_slowpath
+
+# required by mpam_arch.ko
+  bitmap_alloc
+  _find_first_bit
+  _find_next_bit
+  kobject_add
+  kobject_init
+  kobj_sysfs_ops
+  on_each_cpu_cond_mask
+
+# required by mpam_policy.ko
+  android_rvh_probe_register
+  current_time
+  d_add
+  d_alloc_name
+  d_make_root
+  dput
+  find_task_by_vpid
+  fs_kobj
+  get_next_ino
+  get_tree_single
+  init_user_ns
+  kill_litter_super
+  new_inode
+  register_filesystem
+  simple_dir_inode_operations
+  simple_dir_operations
+  simple_statfs
+  smp_call_function_single
+  sysfs_create_mount_point
+  sysfs_remove_mount_point
+  __traceiter_android_rvh_sched_fork
+  __traceiter_android_vh_mpam_set
+  __tracepoint_android_rvh_sched_fork
+  __tracepoint_android_vh_mpam_set
+  unregister_filesystem
+
+# required by mpmm_cluster.ko
+  cpu_subsys
+
+# required by mrdump.ko
+  copy_from_kernel_nofault
+  init_uts_ns
+  kernfs_path_from_node
+  kimage_vaddr
+  __memset_io
+  of_find_node_opts_by_path
+  oops_in_progress
+  param_get_ulong
+  param_set_ulong
+  _raw_read_trylock
+  _raw_spin_trylock
+  register_die_notifier
+  register_module_notifier
+  strcspn
+  strnstr
+  unregister_die_notifier
+  unregister_module_notifier
+
+# required by oplus_touch.ko
+  cancel_delayed_work
+  cancel_delayed_work_sync
+  complete_all
+  devm_gpio_request
+  devm_input_allocate_device
+  devm_pinctrl_get
+  gpiod_direction_output_raw
+  gpiod_get_raw_value
+  gpiod_to_irq
+  gpio_free
+  gpio_request
+  gpio_to_desc
+  hrtimer_active
+  i2c_transfer
+  iio_channel_get
+  iio_read_channel_processed
+  input_allocate_device
+  input_event
+  input_free_device
+  input_mt_init_slots
+  input_mt_report_slot_state
+  input_register_device
+  input_set_abs_params
+  int_sqrt
+  irq_to_desc
+  __kfifo_alloc
+  kobject_create_and_add
+  of_get_named_gpio_flags
+  param_ops_string
+  pinctrl_lookup_state
+  pinctrl_select_state
+  __pm_relax
+  __pm_stay_awake
+  regulator_count_voltages
+  regulator_get
+  regulator_get_voltage
+  regulator_put
+  regulator_set_load
+  release_firmware
+  remove_proc_subtree
+  request_firmware
+  simple_open
+  strcat
+  thermal_zone_get_temp
+  thermal_zone_get_zone_by_name
+  wakeup_source_register
+  wakeup_source_unregister
+
+# required by pcie-ep-test.ko
+  _dev_alert
+  pci_alloc_irq_vectors_affinity
+  pci_disable_msi
+  pci_set_master
+
+# required by phy-zeku-usbdrd.ko
+  devm_phy_create
+
+# required by protect_heap.ko
+  dma_heap_get_dev
+
+# required by pta_drv.ko
+  add_wait_queue
+  alloc_netdev_mqs
+  capable
+  csum_ipv6_magic
+  csum_partial
+  csum_tcpudp_nofold
+  _ctype
+  __dev_kfree_skb_any
+  dql_completed
+  ether_setup
+  free_netdev
+  get_random_bytes
+  __get_task_comm
+  in_aton
+  init_dummy_netdev
+  __ioread32_copy
+  kfree_const
+  kstrdup_const
+  kstrtobool
+  kvasprintf
+  __napi_alloc_skb
+  napi_complete_done
+  napi_disable
+  napi_enable
+  __napi_schedule
+  napi_schedule_prep
+  __netdev_alloc_skb
+  netdev_set_num_tc
+  netdev_set_tc_queue
+  netif_carrier_off
+  netif_carrier_on
+  netif_napi_add
+  netif_receive_skb_list
+  netif_rx
+  netif_schedule_queue
+  netif_tx_wake_queue
+  pskb_expand_head
+  raw_notifier_call_chain
+  raw_notifier_chain_register
+  raw_notifier_chain_unregister
+  register_netdev
+  remove_wait_queue
+  rproc_shutdown
+  skb_add_rx_frag
+  skb_dump
+  skb_pull
+  skb_push
+  sock_create_kern
+  sock_release
+  softnet_data
+  strcasecmp
+  synchronize_net
+  sysfs_emit_at
+  unregister_netdev
+  wait_woken
+  woken_wake_function
+
+# required by ramdisk.ko
+  vm_map_ram
+
+# required by reset-z3.ko
+  reset_controller_register
+
+# required by sc_heap.ko
+  alloc_iova
+  find_iova
+  __free_iova
+  iommu_map_sg
+
+# required by sdhci-zeku.ko
+  dma_get_required_mask
+  mmc_of_parse
+  sdhci_add_host
+  sdhci_adma_write_desc
+  sdhci_enable_clk
+  sdhci_get_property
+  sdhci_pltfm_free
+  sdhci_pltfm_init
+  sdhci_remove_host
+  sdhci_reset
+  sdhci_resume_host
+  sdhci_set_bus_width
+  sdhci_set_uhs_signaling
+  sdhci_suspend_host
+
+# required by sme-rproc.ko
+  cma_alloc
+  cma_release
+  dma_contiguous_default_area
+  iommu_map
+
+# required by snd_machine.ko
+  devm_snd_soc_register_card
+  snd_soc_of_parse_card_name
+  snd_soc_pm_ops
+  snd_soc_unregister_card
+
+# required by snd_platform.ko
+  snd_ctl_add
+  snd_ctl_new1
+  snd_pcm_format_width
+  snd_pcm_hw_constraint_integer
+  snd_pcm_hw_constraint_list
+  snd_pcm_hw_constraint_minmax
+  snd_pcm_lib_ioctl
+  snd_pcm_period_elapsed
+  snd_soc_dapm_add_routes
+  snd_soc_dapm_ignore_suspend
+  snd_soc_dapm_kcontrol_widget
+  snd_soc_dapm_mixer_update_power
+  snd_soc_dapm_new_controls
+  snd_soc_dapm_new_widgets
+  snd_soc_info_volsw
+  snd_soc_new_compress
+  snd_soc_register_component
+  snd_soc_rtdcom_lookup
+  snd_soc_unregister_component
+
+# required by spi-test.ko
+  spi_setup
+
+# required by spi-zeku.ko
+  __spi_alloc_controller
+  spi_controller_resume
+  spi_controller_suspend
+  spi_delay_exec
+  spi_finalize_current_transfer
+  spi_mem_default_supports_op
+  spi_register_controller
+  spi_unregister_controller
+
+# required by ssr_sme.ko
+  rproc_get_by_phandle
+
+# required by superram.ko
+  crypto_register_alg
+  crypto_unregister_alg
+  debugfs_initialized
+  __devm_alloc_percpu
+  devm_iounmap
+  get_random_u64
+  irq_set_irq_type
+  ktime_get_coarse_ts64
+  memcmp
+  param_get_uint
+  param_set_uint
+  pci_ioremap_bar
+  pci_release_regions
+  pci_request_regions
+
+# required by test_clk.ko
+  __clk_get_name
+  of_clk_get_from_provider
+
+# required by time_sync.ko
+  ktime_get_boot_fast_ns
+
+# required by ufs40-zeku.ko
+  async_schedule_node
+  blk_cleanup_queue
+  blk_get_request
+  blk_ksm_get_slot_idx
+  blk_ksm_register
+  blk_ksm_reprogram_all_keys
+  blk_mq_alloc_tag_set
+  blk_mq_free_tag_set
+  blk_mq_init_queue
+  blk_mq_map_queues
+  blk_mq_start_request
+  blk_pm_runtime_init
+  blk_put_request
+  blk_queue_update_dma_alignment
+  blk_queue_update_dma_pad
+  bpf_trace_run5
+  bpf_trace_run6
+  bsg_job_done
+  bsg_remove_queue
+  bsg_setup_queue
+  devfreq_add_device
+  devfreq_resume_device
+  devfreq_suspend_device
+  device_link_add
+  devm_blk_ksm_init
+  dev_pm_opp_add
+  dev_pm_opp_remove
+  down_read_trylock
+  down_write_trylock
+  event_triggers_call
+  irq_set_affinity
+  perf_trace_buf_alloc
+  perf_trace_run_bpf_submit
+  pm_runtime_allow
+  pm_runtime_forbid
+  __scsi_add_device
+  scsi_add_host_with_dma
+  scsi_autopm_get_device
+  scsi_autopm_put_device
+  scsi_block_requests
+  scsi_change_queue_depth
+  scsi_device_put
+  scsi_device_quiesce
+  scsi_dma_map
+  scsi_dma_unmap
+  __scsi_execute
+  scsi_host_alloc
+  scsi_host_put
+  scsi_is_host_device
+  __scsi_iterate_devices
+  scsi_print_sense_hdr
+  scsi_register_driver
+  scsi_remove_device
+  scsi_remove_host
+  scsi_report_bus_reset
+  scsi_scan_host
+  scsi_unblock_requests
+  sdev_prefix_printk
+  sg_copy_from_buffer
+  __sg_page_iter_dma_next
+  sysfs_create_groups
+  sysfs_remove_groups
+  trace_event_buffer_commit
+  trace_event_buffer_reserve
+  trace_event_ignore_this_pid
+  trace_event_printf
+  trace_event_raw_init
+  trace_event_reg
+  trace_handle_return
+  trace_raw_output_prep
+
+# required by vh_dmabuf_heap_flags.ko
+  __traceiter_android_vh_dmabuf_heap_flags_validation
+  __tracepoint_android_vh_dmabuf_heap_flags_validation
+
+# required by vnpu-driver.ko
+  devm_regulator_put
+
+# required by zeku-pci.ko
+  bitmap_find_free_region
+  bitmap_release_region
+  dev_fwnode
+  devm_pci_alloc_host_bridge
+  devm_pci_remap_cfgspace
+  fwnode_property_read_u32_array
+  irq_chip_ack_parent
+  irq_chip_mask_parent
+  irq_chip_unmask_parent
+  irq_domain_get_irq_data
+  irq_domain_set_info
+  irq_domain_update_bus_token
+  irq_set_chained_handler_and_data
+  __irq_set_handler
+  irq_set_handler_data
+  of_pci_get_max_link_speed
+  pcie_capability_clear_and_set_word
+  pcie_capability_read_dword
+  pcie_capability_read_word
+  pcie_link_speed
+  pci_find_ext_capability
+  pci_generic_config_read
+  pci_generic_config_write
+  pci_host_probe
+  pci_msi_create_irq_domain
+  pci_msi_enabled
+  pci_msi_mask_irq
+  pci_msi_unmask_irq
+  pci_rescan_bus
+  pci_stop_and_remove_bus_device
+  pci_write_config_dword
+
+# required by zeku_adc_tm.ko
+  of_get_next_child
+
+# required by zeku_bus_monitor.ko
+  add_timer
+  del_timer
+  mod_timer
+  time64_to_tm
+
+# required by zeku_cam.ko
+  component_bind_all
+  component_master_add_with_match
+  component_master_del
+  component_match_add_release
+  component_unbind_all
+  media_device_cleanup
+  media_device_init
+  __media_device_register
+  media_device_unregister
+  media_entity_pads_init
+  platform_device_register
+  platform_device_register_full
+  v4l2_device_register
+  v4l2_device_register_subdev
+  __v4l2_device_register_subdev_nodes
+  v4l2_device_unregister
+  v4l2_device_unregister_subdev
+  v4l2_fh_open
+  v4l2_fh_release
+  v4l2_subdev_init
+  vb2_fop_mmap
+  vb2_fop_poll
+  vb2_fop_read
+  vb2_ioctl_create_bufs
+  vb2_ioctl_dqbuf
+  vb2_ioctl_expbuf
+  vb2_ioctl_prepare_buf
+  vb2_ioctl_qbuf
+  vb2_ioctl_querybuf
+  vb2_ioctl_reqbufs
+  vb2_ioctl_streamoff
+  video_devdata
+  video_device_alloc
+  video_device_release
+  video_device_release_empty
+  video_ioctl2
+  __video_register_device
+  video_unregister_device
+
+# required by zeku_iomux.ko
+  bgpio_init
+  devm_gpiochip_add_data_with_key
+  devm_kasprintf
+  devm_pinctrl_register
+  gpiochip_get_data
+  handle_bad_irq
+  of_find_node_by_name
+  pinconf_generic_dt_node_to_map
+  pinctrl_dev_get_drvdata
+  pinctrl_utils_free_map
+
+# required by zeku_poweroff.ko
+  pm_power_off
+
+# required by zeku_ras.ko
+  disable_percpu_irq
+  enable_percpu_irq
+  free_percpu_irq
+  read_sanitised_ftr_reg
+  __request_percpu_irq
+
+# required by zeku_rpmsg.ko
+  _copy_from_iter
+  _copy_to_iter
+  ida_alloc_range
+  ida_free
+  iov_iter_revert
+  mutex_lock_interruptible
+  rpmsg_destroy_ept
+  rpmsg_poll
+
+# required by zeku_rpmsg_ns.ko
+  rpmsg_create_channel
+  rpmsg_release_channel
+  rproc_get_by_child
+
+# required by zeku_rpmsg_virtio.ko
+  pfn_is_map_memory
+  register_virtio_driver
+  rpmsg_find_device
+  rpmsg_sendto
+  rpmsg_unregister_device
+  sg_init_table
+  unregister_virtio_driver
+  virtio_check_driver_offered_feature
+  virtqueue_add_inbuf
+  virtqueue_add_outbuf
+  virtqueue_disable_cb
+  virtqueue_enable_cb
+  virtqueue_get_buf
+  virtqueue_get_vring_size
+  virtqueue_kick
+  virtqueue_kick_prepare
+  virtqueue_notify
+
+# required by zeku_thermal.ko
+  kthread_cancel_delayed_work_sync
+  kthread_delayed_work_timer_fn
+  kthread_mod_delayed_work
+  register_pm_notifier
+  sched_setscheduler_nocheck
+  thermal_cdev_update
+  thermal_zone_device_disable
+  thermal_zone_device_enable
+  thermal_zone_of_sensor_register
+  thermal_zone_of_sensor_unregister
+
+# required by zeku_wdt.ko
+  cpu_hotplug_disable
+  cpu_hotplug_enable
+  iomem_resource
+  kobject_del
+  kobject_uevent
+  kstrtoll
+  kthread_bind
+  __release_region
+  __request_region
+
+# required by zk-audio-ipc.ko
+  of_device_uevent_modalias
+
+# required by zk-sc-i2s-driver.ko
+  devm_snd_dmaengine_pcm_register
+  devm_snd_soc_register_component
+
+# required by zk-slc.ko
+  sort
+
+# required by zk-slcpmu.ko
+  hrtimer_forward
+
+# required by zk_clk.ko
+  clk_fixed_factor_ops
+  clk_hw_get_flags
+  clk_hw_get_name
+  clk_hw_get_num_parents
+  clk_hw_get_parent
+  clk_hw_get_parent_by_index
+  clk_hw_get_rate
+  clk_hw_round_rate
+  __clk_mux_determine_rate_closest
+  devm_clk_hw_register
+  devm_of_clk_add_hw_provider
+  divider_determine_rate
+  divider_get_val
+  divider_recalc_rate
+  divider_round_rate_parent
+  of_clk_hw_onecell_get
+
+# required by zk_intc.ko
+  irq_find_matching_fwspec
+  of_irq_find_parent
+
+# required by zk_sbuf.ko
+  memmove
+  of_reserved_mem_device_release
+
+# required by zk_smmu.ko
+  amba_bustype
+  bus_set_iommu
+  device_match_fwnode
+  devm_add_action
+  dmam_free_coherent
+  driver_find_device
+  generic_device_group
+  generic_iommu_put_resv_regions
+  iommu_alloc_resv_region
+  iommu_device_register
+  iommu_device_sysfs_add
+  iommu_device_sysfs_remove
+  iommu_device_unregister
+  iommu_dma_get_resv_regions
+  iommu_fwspec_add_ids
+  iommu_fwspec_free
+  iommu_report_device_fault
+  pci_ats_supported
+  pci_bus_type
+  pci_device_group
+  pci_disable_ats
+  pci_enable_ats
+  platform_get_irq_byname_optional
+  platform_msi_domain_alloc_irqs
+  platform_msi_domain_free_irqs
+  rb_erase
+  rb_insert_color
+
+# required by zram.ko
+  bio_end_io_acct_remapped
+  bio_start_io_acct
+  blk_queue_io_min
+  blk_queue_io_opt
+  blk_queue_logical_block_size
+  blk_queue_max_discard_sectors
+  blk_queue_max_write_zeroes_sectors
+  __cpuhp_state_add_instance
+  __cpuhp_state_remove_instance
+  crypto_has_alg
+  disk_end_io_acct
+  disk_start_io_acct
+  fsync_bdev
+  idr_for_each
+  memparse
+  memset64
+  set_capacity_and_notify
+  __sysfs_match_string
+  zs_compact
+  zs_create_pool
+  zs_destroy_pool
+  zs_free
+  zs_get_total_pages
+  zs_huge_class_size
+  zs_malloc
+  zs_map_object
+  zs_pool_stats
+  zs_unmap_object
+
+# required by zsmalloc.ko
+  alloc_anon_inode
+  __ClearPageMovable
+  dec_zone_page_state
+  inc_zone_page_state
+  init_pseudo
+  iput
+  kern_mount
+  kern_unmount
+  kill_anon_super
+  kmem_cache_alloc
+  kmem_cache_create
+  kmem_cache_destroy
+  kmem_cache_free
+  kstrdup
+  __lock_page
+  page_mapping
+  register_shrinker
+  __SetPageMovable
+  unlock_page
+  unregister_shrinker
diff --git a/arch/arm64/configs/gki_defconfig b/arch/arm64/configs/gki_defconfig
index 15db885..458130d 100644
--- a/arch/arm64/configs/gki_defconfig
+++ b/arch/arm64/configs/gki_defconfig
@@ -329,6 +329,7 @@
 CONFIG_DM_UEVENT=y
 CONFIG_DM_VERITY=y
 CONFIG_DM_VERITY_FEC=y
+CONFIG_DM_BOW=y
 CONFIG_NETDEVICES=y
 CONFIG_DUMMY=y
 CONFIG_WIREGUARD=y
@@ -553,7 +554,7 @@
 CONFIG_PM_DEVFREQ_EVENT=y
 CONFIG_IIO=y
 CONFIG_IIO_BUFFER=y
-CONFIG_IIO_TRIGGER=y
+CONFIG_IIO_TRIGGERED_BUFFER=y
 CONFIG_PWM=y
 CONFIG_GENERIC_PHY=y
 CONFIG_POWERCAP=y
@@ -581,6 +582,7 @@
 CONFIG_QFMT_V2=y
 CONFIG_FUSE_FS=y
 CONFIG_VIRTIO_FS=y
+CONFIG_FUSE_BPF=y
 CONFIG_OVERLAY_FS=y
 CONFIG_INCREMENTAL_FS=y
 CONFIG_MSDOS_FS=y
@@ -593,6 +595,8 @@
 CONFIG_PSTORE_PMSG=y
 CONFIG_PSTORE_RAM=y
 CONFIG_EROFS_FS=y
+CONFIG_EROFS_FS_PCPU_KTHREAD=y
+CONFIG_EROFS_FS_PCPU_KTHREAD_HIPRI=y
 CONFIG_NLS_CODEPAGE_437=y
 CONFIG_NLS_CODEPAGE_737=y
 CONFIG_NLS_CODEPAGE_775=y
diff --git a/arch/arm64/include/asm/efi.h b/arch/arm64/include/asm/efi.h
index c5d4551..53cbbb9 100644
--- a/arch/arm64/include/asm/efi.h
+++ b/arch/arm64/include/asm/efi.h
@@ -25,7 +25,7 @@
 ({									\
 	efi_virtmap_load();						\
 	__efi_fpsimd_begin();						\
-	spin_lock(&efi_rt_lock);					\
+	raw_spin_lock(&efi_rt_lock);					\
 })
 
 #define arch_efi_call_virt(p, f, args...)				\
@@ -37,12 +37,12 @@
 
 #define arch_efi_call_virt_teardown()					\
 ({									\
-	spin_unlock(&efi_rt_lock);					\
+	raw_spin_unlock(&efi_rt_lock);					\
 	__efi_fpsimd_end();						\
 	efi_virtmap_unload();						\
 })
 
-extern spinlock_t efi_rt_lock;
+extern raw_spinlock_t efi_rt_lock;
 efi_status_t __efi_rt_asm_wrapper(void *, const char *, ...);
 
 #define ARCH_EFI_IRQ_FLAGS_MASK (PSR_D_BIT | PSR_A_BIT | PSR_I_BIT | PSR_F_BIT)
diff --git a/arch/arm64/kernel/efi.c b/arch/arm64/kernel/efi.c
index 386bd81..9669f3f 100644
--- a/arch/arm64/kernel/efi.c
+++ b/arch/arm64/kernel/efi.c
@@ -145,7 +145,7 @@
 	return s;
 }
 
-DEFINE_SPINLOCK(efi_rt_lock);
+DEFINE_RAW_SPINLOCK(efi_rt_lock);
 
 asmlinkage u64 *efi_rt_stack_top __ro_after_init;
 
diff --git a/arch/arm64/kernel/elfcore.c b/arch/arm64/kernel/elfcore.c
index 98d6744..a4f5ebd 100644
--- a/arch/arm64/kernel/elfcore.c
+++ b/arch/arm64/kernel/elfcore.c
@@ -65,7 +65,6 @@
 		mte_save_page_tags(page_address(page), tags);
 		put_page(page);
 		if (!dump_emit(cprm, tags, MTE_PAGE_TAG_STORAGE)) {
-			mte_free_tag_storage(tags);
 			ret = 0;
 			break;
 		}
@@ -77,7 +76,7 @@
 	return ret;
 }
 
-Elf_Half elf_core_extra_phdrs(void)
+Elf_Half elf_core_extra_phdrs(struct coredump_params *cprm)
 {
 	struct vm_area_struct *vma;
 	int vma_count = 0;
@@ -112,7 +111,7 @@
 	return 1;
 }
 
-size_t elf_core_extra_data_size(void)
+size_t elf_core_extra_data_size(struct coredump_params *cprm)
 {
 	struct vm_area_struct *vma;
 	size_t data_size = 0;
diff --git a/arch/arm64/kvm/hyp/nvhe/mem_protect.c b/arch/arm64/kvm/hyp/nvhe/mem_protect.c
index 5d2ce6e..91e0132 100644
--- a/arch/arm64/kvm/hyp/nvhe/mem_protect.c
+++ b/arch/arm64/kvm/hyp/nvhe/mem_protect.c
@@ -959,7 +959,7 @@
 	if (!kvm_pte_valid(pte))
 		return PKVM_NOPAGE;
 
-	return pkvm_getstate(kvm_pgtable_stage2_pte_prot(pte));
+	return pkvm_getstate(kvm_pgtable_hyp_pte_prot(pte));
 }
 
 static int __hyp_check_page_state_range(u64 addr, u64 size,
diff --git a/arch/arm64/mm/fault.c b/arch/arm64/mm/fault.c
index 768b6c3..f54a729 100644
--- a/arch/arm64/mm/fault.c
+++ b/arch/arm64/mm/fault.c
@@ -543,6 +543,7 @@
 	unsigned long addr = untagged_addr(far);
 #ifdef CONFIG_SPECULATIVE_PAGE_FAULT
 	struct vm_area_struct *vma;
+	struct vm_area_struct pvma;
 	unsigned long seq;
 #endif
 
@@ -626,17 +627,17 @@
 		count_vm_spf_event(SPF_ABORT_NO_SPECULATE);
 		goto spf_abort;
 	}
-
+	pvma = *vma;
 	if (!mmap_seq_read_check(mm, seq, SPF_ABORT_VMA_COPY)) {
 		put_vma(vma);
 		goto spf_abort;
 	}
-	if (!(vma->vm_flags & vm_flags)) {
+	if (!(pvma.vm_flags & vm_flags)) {
 		put_vma(vma);
 		count_vm_spf_event(SPF_ABORT_ACCESS_ERROR);
 		goto spf_abort;
 	}
-	fault = do_handle_mm_fault(vma, addr & PAGE_MASK,
+	fault = do_handle_mm_fault(&pvma, addr & PAGE_MASK,
 			mm_flags | FAULT_FLAG_SPECULATIVE, seq, regs);
 	put_vma(vma);
 
diff --git a/arch/ia64/kernel/elfcore.c b/arch/ia64/kernel/elfcore.c
index 9468052..8895df1 100644
--- a/arch/ia64/kernel/elfcore.c
+++ b/arch/ia64/kernel/elfcore.c
@@ -7,7 +7,7 @@
 #include <asm/elf.h>
 
 
-Elf64_Half elf_core_extra_phdrs(void)
+Elf64_Half elf_core_extra_phdrs(struct coredump_params *cprm)
 {
 	return GATE_EHDR->e_phnum;
 }
@@ -60,7 +60,7 @@
 	return 1;
 }
 
-size_t elf_core_extra_data_size(void)
+size_t elf_core_extra_data_size(struct coredump_params *cprm)
 {
 	const struct elf_phdr *const gate_phdrs =
 		(const struct elf_phdr *) (GATE_ADDR + GATE_EHDR->e_phoff);
diff --git a/arch/powerpc/mm/fault.c b/arch/powerpc/mm/fault.c
index 888c12f..fc98393 100644
--- a/arch/powerpc/mm/fault.c
+++ b/arch/powerpc/mm/fault.c
@@ -395,6 +395,7 @@
 	vm_fault_t fault, major = 0;
 	bool kprobe_fault = kprobe_page_fault(regs, 11);
 #ifdef CONFIG_SPECULATIVE_PAGE_FAULT
+	struct vm_area_struct pvma;
 	unsigned long seq;
 #endif
 
@@ -477,25 +478,25 @@
 		count_vm_spf_event(SPF_ABORT_NO_SPECULATE);
 		goto spf_abort;
 	}
-
+	pvma = *vma;
 	if (!mmap_seq_read_check(mm, seq, SPF_ABORT_VMA_COPY)) {
 		put_vma(vma);
 		goto spf_abort;
 	}
 #ifdef CONFIG_PPC_MEM_KEYS
 	if (unlikely(access_pkey_error(is_write, is_exec,
-				       (error_code & DSISR_KEYFAULT), vma))) {
+				       (error_code & DSISR_KEYFAULT), &pvma))) {
 		put_vma(vma);
 		count_vm_spf_event(SPF_ABORT_ACCESS_ERROR);
 		goto spf_abort;
 	}
 #endif /* CONFIG_PPC_MEM_KEYS */
-	if (unlikely(access_error(is_write, is_exec, vma))) {
+	if (unlikely(access_error(is_write, is_exec, &pvma))) {
 		put_vma(vma);
 		count_vm_spf_event(SPF_ABORT_ACCESS_ERROR);
 		goto spf_abort;
 	}
-	fault = do_handle_mm_fault(vma, address,
+	fault = do_handle_mm_fault(&pvma, address,
 			flags | FAULT_FLAG_SPECULATIVE, seq, regs);
 	put_vma(vma);
 	major |= fault & VM_FAULT_MAJOR;
diff --git a/arch/x86/configs/gki_defconfig b/arch/x86/configs/gki_defconfig
index 1849c0f..4633501 100644
--- a/arch/x86/configs/gki_defconfig
+++ b/arch/x86/configs/gki_defconfig
@@ -39,8 +39,10 @@
 # CONFIG_RD_XZ is not set
 # CONFIG_RD_LZO is not set
 CONFIG_BOOT_CONFIG=y
+# CONFIG_UID16 is not set
 # CONFIG_SYSFS_SYSCALL is not set
 # CONFIG_FHANDLE is not set
+# CONFIG_PCSPKR_PLATFORM is not set
 CONFIG_KALLSYMS_ALL=y
 CONFIG_USERFAULTFD=y
 # CONFIG_RSEQ is not set
@@ -58,6 +60,9 @@
 CONFIG_PARAVIRT_TIME_ACCOUNTING=y
 CONFIG_NR_CPUS=32
 # CONFIG_X86_MCE is not set
+# CONFIG_MICROCODE is not set
+# CONFIG_X86_5LEVEL is not set
+# CONFIG_MTRR_SANITIZER is not set
 CONFIG_EFI=y
 CONFIG_CMDLINE_BOOL=y
 CONFIG_CMDLINE="stack_depot_disable=on cgroup_disable=pressure"
@@ -65,6 +70,11 @@
 CONFIG_PM_WAKELOCKS=y
 CONFIG_PM_WAKELOCKS_LIMIT=0
 # CONFIG_PM_WAKELOCKS_GC is not set
+# CONFIG_ACPI_AC is not set
+# CONFIG_ACPI_BATTERY is not set
+# CONFIG_ACPI_FAN is not set
+# CONFIG_ACPI_THERMAL is not set
+# CONFIG_X86_PM_TIMER is not set
 CONFIG_CPU_FREQ_STAT=y
 CONFIG_CPU_FREQ_TIMES=y
 CONFIG_CPU_FREQ_GOV_POWERSAVE=y
@@ -298,6 +308,7 @@
 CONFIG_DM_UEVENT=y
 CONFIG_DM_VERITY=y
 CONFIG_DM_VERITY_FEC=y
+CONFIG_DM_BOW=y
 CONFIG_NETDEVICES=y
 CONFIG_DUMMY=y
 CONFIG_WIREGUARD=y
@@ -354,6 +365,7 @@
 CONFIG_SERIAL_SAMSUNG_CONSOLE=y
 CONFIG_SERIAL_DEV_BUS=y
 CONFIG_HW_RANDOM=y
+# CONFIG_HW_RANDOM_VIA is not set
 # CONFIG_DEVMEM is not set
 # CONFIG_DEVPORT is not set
 CONFIG_HPET=y
@@ -471,6 +483,7 @@
 CONFIG_LEDS_TRIGGER_TRANSIENT=y
 CONFIG_EDAC=y
 CONFIG_RTC_CLASS=y
+# CONFIG_RTC_HCTOSYS is not set
 CONFIG_DMABUF_HEAPS=y
 CONFIG_DMABUF_SYSFS_STATS=y
 CONFIG_DMABUF_HEAPS_DEFERRED_FREE=y
@@ -487,7 +500,7 @@
 CONFIG_PM_DEVFREQ_EVENT=y
 CONFIG_IIO=y
 CONFIG_IIO_BUFFER=y
-CONFIG_IIO_TRIGGER=y
+CONFIG_IIO_TRIGGERED_BUFFER=y
 CONFIG_POWERCAP=y
 CONFIG_ANDROID=y
 CONFIG_ANDROID_BINDER_IPC=y
@@ -512,6 +525,7 @@
 CONFIG_QFMT_V2=y
 CONFIG_FUSE_FS=y
 CONFIG_VIRTIO_FS=y
+CONFIG_FUSE_BPF=y
 CONFIG_OVERLAY_FS=y
 CONFIG_INCREMENTAL_FS=y
 CONFIG_MSDOS_FS=y
@@ -525,6 +539,8 @@
 CONFIG_PSTORE_PMSG=y
 CONFIG_PSTORE_RAM=y
 CONFIG_EROFS_FS=y
+CONFIG_EROFS_FS_PCPU_KTHREAD=y
+CONFIG_EROFS_FS_PCPU_KTHREAD_HIPRI=y
 CONFIG_NLS_CODEPAGE_437=y
 CONFIG_NLS_CODEPAGE_737=y
 CONFIG_NLS_CODEPAGE_775=y
diff --git a/arch/x86/mm/fault.c b/arch/x86/mm/fault.c
index 83e07cb..b643180 100644
--- a/arch/x86/mm/fault.c
+++ b/arch/x86/mm/fault.c
@@ -1227,6 +1227,7 @@
 	vm_fault_t fault;
 	unsigned int flags = FAULT_FLAG_DEFAULT;
 #ifdef CONFIG_SPECULATIVE_PAGE_FAULT
+	struct vm_area_struct pvma;
 	unsigned long seq;
 #endif
 
@@ -1351,17 +1352,17 @@
 		count_vm_spf_event(SPF_ABORT_NO_SPECULATE);
 		goto spf_abort;
 	}
-
+	pvma = *vma;
 	if (!mmap_seq_read_check(mm, seq, SPF_ABORT_VMA_COPY)) {
 		put_vma(vma);
 		goto spf_abort;
 	}
-	if (unlikely(access_error(error_code, vma))) {
+	if (unlikely(access_error(error_code, &pvma))) {
 		put_vma(vma);
 		count_vm_spf_event(SPF_ABORT_ACCESS_ERROR);
 		goto spf_abort;
 	}
-	fault = do_handle_mm_fault(vma, address,
+	fault = do_handle_mm_fault(&pvma, address,
 			flags | FAULT_FLAG_SPECULATIVE, seq, regs);
 	put_vma(vma);
 
diff --git a/arch/x86/um/elfcore.c b/arch/x86/um/elfcore.c
index 48a3eb0..650cdbb 100644
--- a/arch/x86/um/elfcore.c
+++ b/arch/x86/um/elfcore.c
@@ -7,7 +7,7 @@
 #include <asm/elf.h>
 
 
-Elf32_Half elf_core_extra_phdrs(void)
+Elf32_Half elf_core_extra_phdrs(struct coredump_params *cprm)
 {
 	return vsyscall_ehdr ? (((struct elfhdr *)vsyscall_ehdr)->e_phnum) : 0;
 }
@@ -60,7 +60,7 @@
 	return 1;
 }
 
-size_t elf_core_extra_data_size(void)
+size_t elf_core_extra_data_size(struct coredump_params *cprm)
 {
 	if ( vsyscall_ehdr ) {
 		const struct elfhdr *const ehdrp =
diff --git a/build.config.gki.aarch64 b/build.config.gki.aarch64
index 21203d8..aa5aa70b 100644
--- a/build.config.gki.aarch64
+++ b/build.config.gki.aarch64
@@ -37,6 +37,8 @@
 android/abi_gki_aarch64_amlogic
 android/abi_gki_aarch64_sunxi
 android/abi_gki_aarch64_pasa
+android/abi_gki_aarch64_zeku
+android/abi_gki_aarch64_lenovo
 "
 
 FILES="${FILES}
diff --git a/build.config.gki_kasan b/build.config.gki_kasan
index 1aca62c..2c2be94 100644
--- a/build.config.gki_kasan
+++ b/build.config.gki_kasan
@@ -6,7 +6,7 @@
 function update_kasan_config() {
     ${KERNEL_DIR}/scripts/config --file ${OUT_DIR}/.config \
          -e CONFIG_KASAN \
-         -e CONFIG_KASAN_INLINE \
+         -e CONFIG_KASAN_PANIC_ON_WARN \
          -e CONFIG_KCOV \
          -e CONFIG_PANIC_ON_WARN_DEFAULT_ENABLE \
          -d CONFIG_RANDOMIZE_BASE \
diff --git a/crypto/testmgr.h b/crypto/testmgr.h
index 2be20a5..652c40d 100644
--- a/crypto/testmgr.h
+++ b/crypto/testmgr.h
@@ -32583,4 +32583,1540 @@
 			  0xae, 0x15, 0x81, 0x15, 0xd0, 0x88, 0xa0, 0x3c, },
 }};
 
+/*
+ * Test vectors generated using https://github.com/google/hctr2
+ */
+static const struct cipher_testvec aes_xctr_tv_template[] = {
+	{
+		.key	= "\x9c\x8d\xc4\xbd\x71\x36\xdc\x82"
+			  "\x7c\xa1\xca\xa3\x23\x5a\xdb\xa4",
+		.iv	= "\x8d\xe7\xa5\x6a\x95\x86\x42\xde"
+			  "\xba\xea\x6e\x69\x03\x33\x86\x0f",
+		.ptext	= "\xbd",
+		.ctext	= "\xb9",
+		.klen	= 16,
+		.len	= 1,
+	},
+	{
+		.key	= "\xbc\x1b\x12\x0c\x3f\x18\xcc\x1f"
+			  "\x5a\x1d\xab\x81\xa8\x68\x7c\x63",
+		.iv	= "\x22\xc1\xdd\x25\x0b\x18\xcb\xa5"
+			  "\x4a\xda\x15\x07\x73\xd9\x88\x10",
+		.ptext	= "\x24\x6e\x64\xc6\x15\x26\x9c\xda"
+			  "\x2a\x4b\x57\x12\xff\x7c\xd6\xb5",
+		.ctext	= "\xd6\x47\x8d\x58\x92\xb2\x84\xf9"
+			  "\xb7\xee\x0d\x98\xa1\x39\x4d\x8f",
+		.klen	= 16,
+		.len	= 16,
+	},
+	{
+		.key	= "\x44\x03\xbf\x4c\x30\xf0\xa7\xd6"
+			  "\xbd\x54\xbb\x66\x8e\xa6\x0e\x8a",
+		.iv	= "\xe6\xf7\x26\xdf\x8c\x3c\xaa\x88"
+			  "\xce\xc1\xbd\x43\x3b\x09\x62\xad",
+		.ptext	= "\x3c\xe3\x46\xb9\x8f\x9d\x3f\x8d"
+			  "\xef\xf2\x53\xab\x24\xe2\x29\x08"
+			  "\xf8\x7e\x1d\xa6\x6d\x86\x7d\x60"
+			  "\x97\x63\x93\x29\x71\x94\xb4",
+		.ctext	= "\xd4\xa3\xc6\xb8\xc1\x6f\x70\x1a"
+			  "\x52\x0c\xed\x4c\xaf\x51\x56\x23"
+			  "\x48\x45\x07\x10\x34\xc5\xba\x71"
+			  "\xe5\xf8\x1e\xd8\xcb\xa6\xe7",
+		.klen	= 16,
+		.len	= 31,
+	},
+	{
+		.key	= "\x5b\x17\x30\x94\x19\x31\xa1\xae"
+			  "\x24\x8e\x42\x1e\x82\xe6\xec\xb8",
+		.iv	= "\xd1\x2e\xb9\xb8\xf8\x49\xeb\x68"
+			  "\x06\xeb\x65\x33\x34\xa2\xeb\xf0",
+		.ptext	= "\x19\x75\xec\x59\x60\x1b\x7a\x3e"
+			  "\x62\x46\x87\xf0\xde\xab\x81\x36"
+			  "\x63\x53\x11\xa0\x1f\xce\x25\x85"
+			  "\x49\x6b\x28\xfa\x1c\x92\xe5\x18"
+			  "\x38\x14\x00\x79\xf2\x9e\xeb\xfc"
+			  "\x36\xa7\x6b\xe1\xe5\xcf\x04\x48"
+			  "\x44\x6d\xbd\x64\xb3\xcb\x78\x05"
+			  "\x8d\x7f\x9a\xaf\x3c\xcf\x6c\x45"
+			  "\x6c\x7c\x46\x4c\xa8\xc0\x1e\xe4"
+			  "\x33\xa5\x7b\xbb\x26\xd9\xc0\x32"
+			  "\x9d\x8a\xb3\xf3\x3d\x52\xe6\x48"
+			  "\x4c\x9b\x4c\x6e\xa4\xa3\xad\x66"
+			  "\x56\x48\xd5\x98\x3a\x93\xc4\x85"
+			  "\xe9\x89\xca\xa6\xc1\xc8\xe7\xf8"
+			  "\xc3\xe9\xef\xbe\x77\xe6\xd1\x3a"
+			  "\xa6\x99\xc8\x2d\xdf\x40\x0f\x44",
+		.ctext	= "\xc6\x1a\x01\x1a\x00\xba\x04\xff"
+			  "\x10\xd1\x7e\x5d\xad\x91\xde\x8c"
+			  "\x08\x55\x95\xae\xd7\x22\x77\x40"
+			  "\xf0\x33\x1b\x51\xef\xfe\x3d\x67"
+			  "\xdf\xc4\x9f\x39\x47\x67\x93\xab"
+			  "\xaa\x37\x55\xfe\x41\xe0\xba\xcd"
+			  "\x25\x02\x7c\x61\x51\xa1\xcc\x72"
+			  "\x7a\x20\x26\xb9\x06\x68\xbd\x19"
+			  "\xc5\x2e\x1b\x75\x4a\x40\xb2\xd2"
+			  "\xc4\xee\xd8\x5b\xa4\x55\x7d\x25"
+			  "\xfc\x01\x4d\x6f\x0a\xfd\x37\x5d"
+			  "\x3e\x67\xc0\x35\x72\x53\x7b\xe2"
+			  "\xd6\x19\x5b\x92\x6c\x3a\x8c\x2a"
+			  "\xe2\xc2\xa2\x4f\x2a\xf2\xb5\x15"
+			  "\x65\xc5\x8d\x97\xf9\xbf\x8c\x98"
+			  "\xe4\x50\x1a\xf2\x76\x55\x07\x49",
+		.klen	= 16,
+		.len	= 128,
+	},
+	{
+		.key	= "\x17\xa6\x01\x3d\x5d\xd6\xef\x2d"
+			  "\x69\x8f\x4c\x54\x5b\xae\x43\xf0",
+		.iv	= "\xa9\x1b\x47\x60\x26\x82\xf7\x1c"
+			  "\x80\xf8\x88\xdd\xfb\x44\xd9\xda",
+		.ptext	= "\xf7\x67\xcd\xa6\x04\x65\x53\x99"
+			  "\x90\x5c\xa2\x56\x74\xd7\x9d\xf2"
+			  "\x0b\x03\x7f\x4e\xa7\x84\x72\x2b"
+			  "\xf0\xa5\xbf\xe6\x9a\x62\x3a\xfe"
+			  "\x69\x5c\x93\x79\x23\x86\x64\x85"
+			  "\xeb\x13\xb1\x5a\xd5\x48\x39\xa0"
+			  "\x70\xfb\x06\x9a\xd7\x12\x5a\xb9"
+			  "\xbe\xed\x2c\x81\x64\xf7\xcf\x80"
+			  "\xee\xe6\x28\x32\x2d\x37\x4c\x32"
+			  "\xf4\x1f\x23\x21\xe9\xc8\xc9\xbf"
+			  "\x54\xbc\xcf\xb4\xc2\x65\x39\xdf"
+			  "\xa5\xfb\x14\x11\xed\x62\x38\xcf"
+			  "\x9b\x58\x11\xdd\xe9\xbd\x37\x57"
+			  "\x75\x4c\x9e\xd5\x67\x0a\x48\xc6"
+			  "\x0d\x05\x4e\xb1\x06\xd7\xec\x2e"
+			  "\x9e\x59\xde\x4f\xab\x38\xbb\xe5"
+			  "\x87\x04\x5a\x2c\x2a\xa2\x8f\x3c"
+			  "\xe7\xe1\x46\xa9\x49\x9f\x24\xad"
+			  "\x2d\xb0\x55\x40\x64\xd5\xda\x7e"
+			  "\x1e\x77\xb8\x29\x72\x73\xc3\x84"
+			  "\xcd\xf3\x94\x90\x58\x76\xc9\x2c"
+			  "\x2a\xad\x56\xde\x33\x18\xb6\x3b"
+			  "\x10\xe9\xe9\x8d\xf0\xa9\x7f\x05"
+			  "\xf7\xb5\x8c\x13\x7e\x11\x3d\x1e"
+			  "\x02\xbb\x5b\xea\x69\xff\x85\xcf"
+			  "\x6a\x18\x97\x45\xe3\x96\xba\x4d"
+			  "\x2d\x7a\x70\x78\x15\x2c\xe9\xdc"
+			  "\x4e\x09\x92\x57\x04\xd8\x0b\xa6"
+			  "\x20\x71\x76\x47\x76\x96\x89\xa0"
+			  "\xd9\x29\xa2\x5a\x06\xdb\x56\x39"
+			  "\x60\x33\x59\x04\x95\x89\xf6\x18"
+			  "\x1d\x70\x75\x85\x3a\xb7\x6e",
+		.ctext	= "\xe1\xe7\x3f\xd3\x6a\xb9\x2f\x64"
+			  "\x37\xc5\xa4\xe9\xca\x0a\xa1\xd6"
+			  "\xea\x7d\x39\xe5\xe6\xcc\x80\x54"
+			  "\x74\x31\x2a\x04\x33\x79\x8c\x8e"
+			  "\x4d\x47\x84\x28\x27\x9b\x3c\x58"
+			  "\x54\x58\x20\x4f\x70\x01\x52\x5b"
+			  "\xac\x95\x61\x49\x5f\xef\xba\xce"
+			  "\xd7\x74\x56\xe7\xbb\xe0\x3c\xd0"
+			  "\x7f\xa9\x23\x57\x33\x2a\xf6\xcb"
+			  "\xbe\x42\x14\x95\xa8\xf9\x7a\x7e"
+			  "\x12\x53\x3a\xe2\x13\xfe\x2d\x89"
+			  "\xeb\xac\xd7\xa8\xa5\xf8\x27\xf3"
+			  "\x74\x9a\x65\x63\xd1\x98\x3a\x7e"
+			  "\x27\x7b\xc0\x20\x00\x4d\xf4\xe5"
+			  "\x7b\x69\xa6\xa8\x06\x50\x85\xb6"
+			  "\x7f\xac\x7f\xda\x1f\xf5\x37\x56"
+			  "\x9b\x2f\xd3\x86\x6b\x70\xbd\x0e"
+			  "\x55\x9a\x9d\x4b\x08\xb5\x5b\x7b"
+			  "\xd4\x7c\xb4\x71\x49\x92\x4a\x1e"
+			  "\xed\x6d\x11\x09\x47\x72\x32\x6a"
+			  "\x97\x53\x36\xaf\xf3\x06\x06\x2c"
+			  "\x69\xf1\x59\x00\x36\x95\x28\x2a"
+			  "\xb6\xcd\x10\x21\x84\x73\x5c\x96"
+			  "\x86\x14\x2c\x3d\x02\xdb\x53\x9a"
+			  "\x61\xde\xea\x99\x84\x7a\x27\xf6"
+			  "\xf7\xc8\x49\x73\x4b\xb8\xeb\xd3"
+			  "\x41\x33\xdd\x09\x68\xe2\x64\xb8"
+			  "\x5f\x75\x74\x97\x91\x54\xda\xc2"
+			  "\x73\x2c\x1e\x5a\x84\x48\x01\x1a"
+			  "\x0d\x8b\x0a\xdf\x07\x2e\xee\x77"
+			  "\x1d\x17\x41\x7a\xc9\x33\x63\xfa"
+			  "\x9f\xc3\x74\x57\x5f\x03\x4c",
+		.klen	= 16,
+		.len	= 255,
+	},
+	{
+		.key	= "\xe5\xf1\x48\x2e\x88\xdb\xc7\x28"
+			  "\xa2\x55\x5d\x2f\x90\x02\xdc\xd3"
+			  "\xf5\xd3\x9e\x87\xd5\x58\x30\x4a",
+		.iv	= "\xa6\x40\x39\xf9\x63\x6c\x2d\xd4"
+			  "\x1b\x71\x05\xa4\x88\x86\x11\xd3",
+		.ptext	= "\xb6\x06\xae\x15\x11\x96\xc1\x44"
+			  "\x44\xc2\x98\xf9\xa8\x0a\x0b",
+		.ctext	= "\x27\x3b\x68\x40\xa9\x5e\x74\x6b"
+			  "\x74\x67\x18\xf9\x37\xed\xed",
+		.klen	= 24,
+		.len	= 15,
+	},
+	{
+		.key	= "\xc8\xa0\x27\x67\x04\x3f\xed\xa5"
+			  "\xb4\x0c\x51\x91\x2d\x27\x77\x33"
+			  "\xa5\xfc\x2a\x9f\x78\xd8\x1c\x68",
+		.iv	= "\x83\x99\x1a\xe2\x84\xca\xa9\x16"
+			  "\x8d\xc4\x2d\x1b\x67\xc8\x86\x21",
+		.ptext	= "\xd6\x22\x85\xb8\x5d\x7e\x26\x2e"
+			  "\xbe\x04\x9d\x0c\x03\x91\x45\x4a"
+			  "\x36",
+		.ctext	= "\x0f\x44\xa9\x62\x72\xec\x12\x26"
+			  "\x3a\xc6\x83\x26\x62\x5e\xb7\x13"
+			  "\x05",
+		.klen	= 24,
+		.len	= 17,
+	},
+	{
+		.key	= "\xc5\x87\x18\x09\x0a\x4e\x66\x3e"
+			  "\x50\x90\x19\x93\xc0\x33\xcf\x80"
+			  "\x3a\x36\x6b\x6c\x43\xd7\xe4\x93",
+		.iv	= "\xdd\x0b\x75\x1f\xee\x2f\xb4\x52"
+			  "\x10\x82\x1f\x79\x8a\xa4\x9b\x87",
+		.ptext	= "\x56\xf9\x13\xce\x9f\x30\x10\x11"
+			  "\x1b\x59\xfd\x39\x5a\x29\xa3\x44"
+			  "\x78\x97\x8c\xf6\x99\x6d\x26\xf1"
+			  "\x32\x60\x6a\xeb\x04\x47\x29\x4c"
+			  "\x7e\x14\xef\x4d\x55\x29\xfe\x36"
+			  "\x37\xcf\x0b\x6e\xf3\xce\x15\xd2",
+		.ctext	= "\x8f\x98\xe1\x5a\x7f\xfe\xc7\x05"
+			  "\x76\xb0\xd5\xde\x90\x52\x2b\xa8"
+			  "\xf3\x6e\x3c\x77\xa5\x33\x63\xdd"
+			  "\x6f\x62\x12\xb0\x80\x10\xc1\x28"
+			  "\x58\xe5\xd6\x24\x44\x04\x55\xf3"
+			  "\x6d\x94\xcb\x2c\x7e\x7a\x85\x79",
+		.klen	= 24,
+		.len	= 48,
+	},
+	{
+		.key	= "\x84\x9b\xe8\x10\x4c\xb3\xd1\x7a"
+			  "\xb3\xab\x4e\x6f\x90\x12\x07\xf8"
+			  "\xef\xde\x42\x09\xbf\x34\x95\xb2",
+		.iv	= "\x66\x62\xf9\x48\x9d\x17\xf7\xdf"
+			  "\x06\x67\xf4\x6d\xf2\xbc\xa2\xe5",
+		.ptext	= "\x2f\xd6\x16\x6b\xf9\x4b\x44\x14"
+			  "\x90\x93\xe5\xfd\x05\xaa\x00\x26"
+			  "\xbd\xab\x11\xb8\xf0\xcb\x11\x72"
+			  "\xdd\xc5\x15\x4f\x4e\x1b\xf8\xc9"
+			  "\x8f\x4a\xd5\x69\xf8\x9e\xfb\x05"
+			  "\x8a\x37\x46\xfe\xfa\x58\x9b\x0e"
+			  "\x72\x90\x9a\x06\xa5\x42\xf4\x7c"
+			  "\x35\xd5\x64\x70\x72\x67\xfc\x8b"
+			  "\xab\x5a\x2f\x64\x9b\xa1\xec\xe7"
+			  "\xe6\x92\x69\xdb\x62\xa4\xe7\x44"
+			  "\x88\x28\xd4\x52\x64\x19\xa9\xd7"
+			  "\x0c\x00\xe6\xe7\xc1\x28\xc1\xf5"
+			  "\x72\xc5\xfa\x09\x22\x2e\xf4\x82"
+			  "\xa3\xdc\xc1\x68\xf9\x29\x55\x8d"
+			  "\x04\x67\x13\xa6\x52\x04\x3c\x0c"
+			  "\x14\xf2\x87\x23\x61\xab\x82\xcb"
+			  "\x49\x5b\x6b\xd4\x4f\x0d\xd4\x95"
+			  "\x82\xcd\xe3\x69\x47\x1b\x31\x73"
+			  "\x73\x77\xc1\x53\x7d\x43\x5e\x4a"
+			  "\x80\x3a\xca\x9c\xc7\x04\x1a\x31"
+			  "\x8e\xe6\x76\x7f\xe1\xb3\xd0\x57"
+			  "\xa2\xb2\xf6\x09\x51\xc9\x6d\xbc"
+			  "\x79\xed\x57\x50\x36\xd2\x93\xa4"
+			  "\x40\x5d\xac\x3a\x3b\xb6\x2d\x89"
+			  "\x78\xa2\xbd\x23\xec\x35\x06\xf0"
+			  "\xa8\xc8\xc9\xb0\xe3\x28\x2b\xba"
+			  "\x70\xa0\xfe\xed\x13\xc4\xd7\x90"
+			  "\xb1\x6a\xe0\xe1\x30\x71\x15\xd0"
+			  "\xe2\xb3\xa6\x4e\xb0\x01\xf9\xe7"
+			  "\x59\xc6\x1e\xed\x46\x2b\xe3\xa8"
+			  "\x22\xeb\x7f\x1c\xd9\xcd\xe0\xa6"
+			  "\x72\x42\x2c\x06\x75\xbb\xb7\x6b"
+			  "\xca\x49\x5e\xa1\x47\x8d\x9e\xfe"
+			  "\x60\xcc\x34\x95\x8e\xfa\x1e\x3e"
+			  "\x85\x4b\x03\x54\xea\x34\x1c\x41"
+			  "\x90\x45\xa6\xbe\xcf\x58\x4f\xca"
+			  "\x2c\x79\xc0\x3e\x8f\xd7\x3b\xd4"
+			  "\x55\x74\xa8\xe1\x57\x09\xbf\xab"
+			  "\x2c\xf9\xe4\xdd\x17\x99\x57\x60"
+			  "\x4b\x88\x2a\x7f\x43\x86\xb9\x9a"
+			  "\x60\xbf\x4c\xcf\x9b\x41\xb8\x99"
+			  "\x69\x15\x4f\x91\x4d\xeb\xdf\x6f"
+			  "\xcc\x4c\xf9\x6f\xf2\x33\x23\xe7"
+			  "\x02\x44\xaa\xa2\xfa\xb1\x39\xa5"
+			  "\xff\x88\xf5\x37\x02\x33\x24\xfc"
+			  "\x79\x11\x4c\x94\xc2\x31\x87\x9c"
+			  "\x53\x19\x99\x32\xe4\xde\x18\xf4"
+			  "\x8f\xe2\xe8\xa3\xfb\x0b\xaa\x7c"
+			  "\xdb\x83\x0f\xf6\xc0\x8a\x9b\xcd"
+			  "\x7b\x16\x05\x5b\xe4\xb4\x34\x03"
+			  "\xe3\x8f\xc9\x4b\x56\x84\x2a\x4c"
+			  "\x36\x72\x3c\x84\x4f\xba\xa2\x7f"
+			  "\xf7\x1b\xba\x4d\x8a\xb8\x5d\x51"
+			  "\x36\xfb\xef\x23\x18\x6f\x33\x2d"
+			  "\xbb\x06\x24\x8e\x33\x98\x6e\xcd"
+			  "\x63\x11\x18\x6b\xcc\x1b\x66\xb9"
+			  "\x38\x8d\x06\x8d\x98\x1a\xef\xaa"
+			  "\x35\x4a\x90\xfa\xb1\xd3\xcc\x11"
+			  "\x50\x4c\x54\x18\x60\x5d\xe4\x11"
+			  "\xfc\x19\xe1\x53\x20\x5c\xe7\xef"
+			  "\x8a\x2b\xa8\x82\x51\x5f\x5d\x43"
+			  "\x34\xe5\xcf\x7b\x1b\x6f\x81\x19"
+			  "\xb7\xdf\xa8\x9e\x81\x89\x5f\x33"
+			  "\x69\xaf\xde\x89\x68\x88\xf0\x71",
+		.ctext	= "\xab\x15\x46\x5b\xed\x4f\xa8\xac"
+			  "\xbf\x31\x30\x84\x55\xa4\xb8\x98"
+			  "\x79\xba\xa0\x15\xa4\x55\x20\xec"
+			  "\xf9\x94\x71\xe6\x6a\x6f\xee\x87"
+			  "\x2e\x3a\xa2\x95\xae\x6e\x56\x09"
+			  "\xe9\xc0\x0f\xe2\xc6\xb7\x30\xa9"
+			  "\x73\x8e\x59\x7c\xfd\xe3\x71\xf7"
+			  "\xae\x8b\x91\xab\x5e\x36\xe9\xa8"
+			  "\xff\x17\xfa\xa2\x94\x93\x11\x42"
+			  "\x67\x96\x99\xc5\xf0\xad\x2a\x57"
+			  "\xf9\xa6\x70\x4a\xdf\x71\xff\xc0"
+			  "\xe2\xaf\x9a\xae\x57\x58\x13\x3b"
+			  "\x2d\xf1\xc7\x8f\xdb\x8a\xcc\xce"
+			  "\x53\x1a\x69\x55\x39\xc8\xbe\xc3"
+			  "\x2d\xb1\x03\xd9\xa3\x99\xf4\x8d"
+			  "\xd9\x2d\x27\xae\xa5\xe7\x77\x7f"
+			  "\xbb\x88\x84\xea\xfa\x19\x3f\x44"
+			  "\x61\x21\x8a\x1f\xbe\xac\x60\xb4"
+			  "\xaf\xe9\x00\xab\xef\x3c\x53\x56"
+			  "\xcd\x4b\x53\xd8\x9b\xfe\x88\x23"
+			  "\x5b\x85\x76\x08\xec\xd1\x6e\x4a"
+			  "\x87\xa4\x7d\x29\x4e\x4f\x3f\xc9"
+			  "\xa4\xab\x63\xea\xdd\xef\x9f\x79"
+			  "\x38\x18\x7d\x90\x90\xf9\x12\x57"
+			  "\x1d\x89\xea\xfe\xd4\x47\x45\x32"
+			  "\x6a\xf6\xe7\xde\x22\x7e\xee\xc1"
+			  "\xbc\x2d\xc3\xbb\xe5\xd4\x13\xac"
+			  "\x63\xff\x5b\xb1\x05\x96\xd5\xf3"
+			  "\x07\x9a\x62\xb6\x30\xea\x7d\x1e"
+			  "\xee\x75\x0a\x1b\xcc\x6e\x4d\xa7"
+			  "\xf7\x4d\x74\xd8\x60\x32\x5e\xd0"
+			  "\x93\xd7\x19\x90\x4e\x26\xdb\xe4"
+			  "\x5e\xd4\xa8\xb9\x76\xba\x56\x91"
+			  "\xc4\x75\x04\x1e\xc2\x77\x24\x6f"
+			  "\xf9\xe8\x4a\xec\x7f\x86\x95\xb3"
+			  "\x5c\x2c\x97\xab\xf0\xf7\x74\x5b"
+			  "\x0b\xc2\xda\x42\x40\x34\x16\xed"
+			  "\x06\xc1\x25\x53\x17\x0d\x81\x4e"
+			  "\xe6\xf2\x0f\x6d\x94\x3c\x90\x7a"
+			  "\xae\x20\xe9\x3f\xf8\x18\x67\x6a"
+			  "\x49\x1e\x41\xb6\x46\xab\xc8\xa7"
+			  "\xcb\x19\x96\xf5\x99\xc0\x66\x3e"
+			  "\x77\xcf\x73\x52\x83\x2a\xe2\x48"
+			  "\x27\x6c\xeb\xe7\xe7\xc4\xd5\x6a"
+			  "\x40\x67\xbc\xbf\x6b\x3c\xf3\xbb"
+			  "\x51\x5e\x31\xac\x03\x81\xab\x61"
+			  "\xfa\xa5\xa6\x7d\x8b\xc3\x8a\x75"
+			  "\x28\x7a\x71\x9c\xac\x8f\x76\xfc"
+			  "\xf9\x6c\x5d\x9b\xd7\xf6\x36\x2d"
+			  "\x61\xd5\x61\xaa\xdd\x01\xfc\x57"
+			  "\x91\x10\xcd\xcd\x6d\x27\x63\x24"
+			  "\x67\x46\x7a\xbb\x61\x56\x39\xb1"
+			  "\xd6\x79\xfe\x77\xca\xd6\x73\x59"
+			  "\x6e\x58\x11\x90\x03\x26\x74\x2a"
+			  "\xfa\x52\x12\x47\xfb\x12\xeb\x3e"
+			  "\x88\xf0\x52\x6c\xc0\x54\x7a\x88"
+			  "\x8c\xe5\xde\x9e\xba\xb9\xf2\xe1"
+			  "\x97\x2e\x5c\xbd\xf4\x13\x7e\xf3"
+			  "\xc4\xe1\x87\xa5\x35\xfa\x7c\x71"
+			  "\x1a\xc9\xf4\xa8\x57\xe2\x5a\x6b"
+			  "\x14\xe0\x73\xaf\x56\x6b\xa0\x00"
+			  "\x9e\x5f\x64\xac\x00\xfb\xc4\x92"
+			  "\xe5\xe2\x8a\xb2\x9e\x75\x49\x85"
+			  "\x25\x66\xa5\x1a\xf9\x7d\x1d\x60",
+		.klen	= 24,
+		.len	= 512,
+	},
+	{
+		.key	= "\x05\x60\x3a\x7e\x60\x90\x46\x18"
+			  "\x6c\x60\xba\xeb\x12\xd7\xbe\xd1"
+			  "\xd3\xf6\x10\x46\x9d\xf1\x0c\xb4"
+			  "\x73\xe3\x93\x27\xa8\x2c\x13\xaa",
+		.iv	= "\xf5\x96\xd1\xb6\xcb\x44\xd8\xd0"
+			  "\x3e\xdb\x92\x80\x08\x94\xcd\xd3",
+		.ptext	= "\x78",
+		.ctext	= "\xc5",
+		.klen	= 32,
+		.len	= 1,
+	},
+	{
+		.key	= "\x35\xca\x38\xf3\xd9\xd6\x34\xef"
+			  "\xcd\xee\xa3\x26\x86\xba\xfb\x45"
+			  "\x01\xfa\x52\x67\xff\xc5\x9d\xaa"
+			  "\x64\x9a\x05\xbb\x85\x20\xa7\xf2",
+		.iv	= "\xe3\xda\xf5\xff\x42\x59\x87\x86"
+			  "\xee\x7b\xd6\xb4\x6a\x25\x44\xff",
+		.ptext	= "\x44\x67\x1e\x04\x53\xd2\x4b\xd9"
+			  "\x96\x33\x07\x54\xe4\x8e\x20",
+		.ctext	= "\xcc\x55\x40\x79\x47\x5c\x8b\xa6"
+			  "\xca\x7b\x9f\x50\xe3\x21\xea",
+		.klen	= 32,
+		.len	= 15,
+	},
+	{
+		.key	= "\xaf\xd9\x14\x14\xd5\xdb\xc9\xce"
+			  "\x76\x5c\x5a\xbf\x43\x05\x29\x24"
+			  "\xc4\x13\x68\xcc\xe8\x37\xbd\xb9"
+			  "\x41\x20\xf5\x53\x48\xd0\xa2\xd6",
+		.iv	= "\xa7\xb4\x00\x08\x79\x10\xae\xf5"
+			  "\x02\xbf\x85\xb2\x69\x4c\xc6\x04",
+		.ptext	= "\xac\x6a\xa8\x0c\xb0\x84\xbf\x4c"
+			  "\xae\x94\x20\x58\x7e\x00\x93\x89",
+		.ctext	= "\xd5\xaa\xe2\xe9\x86\x4c\x95\x4e"
+			  "\xde\xb6\x15\xcb\xdc\x1f\x13\x38",
+		.klen	= 32,
+		.len	= 16,
+	},
+	{
+		.key	= "\xed\xe3\x8b\xe7\x1c\x17\xbf\x4a"
+			  "\x02\xe2\xfc\x76\xac\xf5\x3c\x00"
+			  "\x5d\xdc\xfc\x83\xeb\x45\xb4\xcb"
+			  "\x59\x62\x60\xec\x69\x9c\x16\x45",
+		.iv	= "\xe4\x0e\x2b\x90\xd2\xfa\x94\x2e"
+			  "\x10\xe5\x64\x2b\x97\x28\x15\xc7",
+		.ptext	= "\xe6\x53\xff\x60\x0e\xc4\x51\xe4"
+			  "\x93\x4d\xe5\x55\xc5\xd9\xad\x48"
+			  "\x52",
+		.ctext	= "\xba\x25\x28\xf5\xcf\x31\x91\x80"
+			  "\xda\x2b\x95\x5f\x20\xcb\xfb\x9f"
+			  "\xc6",
+		.klen	= 32,
+		.len	= 17,
+	},
+	{
+		.key	= "\x77\x5c\xc0\x73\x9a\x64\x97\x91"
+			  "\x2f\xee\xe0\x20\xc2\x04\x59\x2e"
+			  "\x97\xd2\xa7\x70\xb3\xb0\x21\x6b"
+			  "\x8f\xbf\xb8\x51\xa8\xea\x0f\x62",
+		.iv	= "\x31\x8e\x1f\xcd\xfd\x23\xeb\x7f"
+			  "\x8a\x1f\x1b\x23\x53\x27\x44\xe5",
+		.ptext	= "\xcd\xff\x8c\x9b\x94\x5a\x51\x3f"
+			  "\x40\x93\x56\x93\x66\x39\x63\x1f"
+			  "\xbf\xe6\xa4\xfa\xbe\x79\x93\x03"
+			  "\xf5\x66\x74\x16\xfc\xe4\xce",
+		.ctext	= "\x8b\xd3\xc3\xce\x66\xf8\x66\x4c"
+			  "\xad\xd6\xf5\x0f\xd8\x99\x5a\x75"
+			  "\xa1\x3c\xab\x0b\x21\x36\x57\x72"
+			  "\x88\x29\xe9\xea\x4a\x8d\xe9",
+		.klen	= 32,
+		.len	= 31,
+	},
+	{
+		.key	= "\xa1\x2f\x4d\xde\xfe\xa1\xff\xa8"
+			  "\x73\xdd\xe3\xe2\x95\xfc\xea\x9c"
+			  "\xd0\x80\x42\x0c\xb8\x43\x3e\x99"
+			  "\x39\x38\x0a\x8c\xe8\x45\x3a\x7b",
+		.iv	= "\x32\xc4\x6f\xb1\x14\x43\xd1\x87"
+			  "\xe2\x6f\x5a\x58\x02\x36\x7e\x2a",
+		.ptext	= "\x9e\x5c\x1e\xf1\xd6\x7d\x09\x57"
+			  "\x18\x48\x55\xda\x7d\x44\xf9\x6d"
+			  "\xac\xcd\x59\xbb\x10\xa2\x94\x67"
+			  "\xd1\x6f\xfe\x6b\x4a\x11\xe8\x04"
+			  "\x09\x26\x4f\x8d\x5d\xa1\x7b\x42"
+			  "\xf9\x4b\x66\x76\x38\x12\xfe\xfe",
+		.ctext	= "\x42\xbc\xa7\x64\x15\x9a\x04\x71"
+			  "\x2c\x5f\x94\xba\x89\x3a\xad\xbc"
+			  "\x87\xb3\xf4\x09\x4f\x57\x06\x18"
+			  "\xdc\x84\x20\xf7\x64\x85\xca\x3b"
+			  "\xab\xe6\x33\x56\x34\x60\x5d\x4b"
+			  "\x2e\x16\x13\xd4\x77\xde\x2d\x2b",
+		.klen	= 32,
+		.len	= 48,
+	},
+	{
+		.key	= "\xfb\xf5\xb7\x3d\xa6\x95\x42\xbf"
+			  "\xd2\x94\x6c\x74\x0f\xbc\x5a\x28"
+			  "\x35\x3c\x51\x58\x84\xfb\x7d\x11"
+			  "\x16\x1e\x00\x97\x37\x08\xb7\x16",
+		.iv	= "\x9b\x53\x57\x40\xe6\xd9\xa7\x27"
+			  "\x78\xd4\x9b\xd2\x29\x1d\x24\xa9",
+		.ptext	= "\x8b\x02\x60\x0a\x3e\xb7\x10\x59"
+			  "\xc3\xac\xd5\x2a\x75\x81\xf2\xdb"
+			  "\x55\xca\x65\x86\x44\xfb\xfe\x91"
+			  "\x26\xbb\x45\xb2\x46\x22\x3e\x08"
+			  "\xa2\xbf\x46\xcb\x68\x7d\x45\x7b"
+			  "\xa1\x6a\x3c\x6e\x25\xeb\xed\x31"
+			  "\x7a\x8b\x47\xf9\xde\xec\x3d\x87"
+			  "\x09\x20\x2e\xfa\xba\x8b\x9b\xc5"
+			  "\x6c\x25\x9c\x9d\x2a\xe8\xab\x90"
+			  "\x3f\x86\xee\x61\x13\x21\xd4\xde"
+			  "\xe1\x0c\x95\xfc\x5c\x8a\x6e\x0a"
+			  "\x73\xcf\x08\x69\x44\x4e\xde\x25"
+			  "\xaf\xaa\x56\x04\xc4\xb3\x60\x44"
+			  "\x3b\x8b\x3d\xee\xae\x42\x4b\xd2"
+			  "\x9a\x6c\xa0\x8e\x52\x06\xb2\xd1"
+			  "\x5d\x38\x30\x6d\x27\x9b\x1a\xd8",
+		.ctext	= "\xa3\x78\x33\x78\x95\x95\x97\x07"
+			  "\x53\xa3\xa1\x5b\x18\x32\x27\xf7"
+			  "\x09\x12\x53\x70\x83\xb5\x6a\x9f"
+			  "\x26\x6d\x10\x0d\xe0\x1c\xe6\x2b"
+			  "\x70\x00\xdc\xa1\x60\xef\x1b\xee"
+			  "\xc5\xa5\x51\x17\xae\xcc\xf2\xed"
+			  "\xc4\x60\x07\xdf\xd5\x7a\xe9\x90"
+			  "\x3c\x9f\x96\x5d\x72\x65\x5d\xef"
+			  "\xd0\x94\x32\xc4\x85\x90\x78\xa1"
+			  "\x2e\x64\xf6\xee\x8e\x74\x3f\x20"
+			  "\x2f\x12\x3b\x3d\xd5\x39\x8e\x5a"
+			  "\xf9\x8f\xce\x94\x5d\x82\x18\x66"
+			  "\x14\xaf\x4c\xfe\xe0\x91\xc3\x4a"
+			  "\x85\xcf\xe7\xe8\xf7\xcb\xf0\x31"
+			  "\x88\x7d\xc9\x5b\x71\x9d\x5f\xd2"
+			  "\xfa\xed\xa6\x24\xda\xbb\xb1\x84",
+		.klen	= 32,
+		.len	= 128,
+	},
+	{
+		.key	= "\x32\x37\x2b\x8f\x7b\xb1\x23\x79"
+			  "\x05\x52\xde\x05\xf1\x68\x3f\x6c"
+			  "\xa4\xae\xbc\x21\xc2\xc6\xf0\xbd"
+			  "\x0f\x20\xb7\xa4\xc5\x05\x7b\x64",
+		.iv	= "\xff\x26\x4e\x67\x48\xdd\xcf\xfe"
+			  "\x42\x09\x04\x98\x5f\x1e\xfa\x80",
+		.ptext	= "\x99\xdc\x3b\x19\x41\xf9\xff\x6e"
+			  "\x76\xb5\x03\xfa\x61\xed\xf8\x44"
+			  "\x70\xb9\xf0\x83\x80\x6e\x31\x77"
+			  "\x77\xe4\xc7\xb4\x77\x02\xab\x91"
+			  "\x82\xc6\xf8\x7c\x46\x61\x03\x69"
+			  "\x09\xa0\xf7\x12\xb7\x81\x6c\xa9"
+			  "\x10\x5c\xbb\x55\xb3\x44\xed\xb5"
+			  "\xa2\x52\x48\x71\x90\x5d\xda\x40"
+			  "\x0b\x7f\x4a\x11\x6d\xa7\x3d\x8e"
+			  "\x1b\xcd\x9d\x4e\x75\x8b\x7d\x87"
+			  "\xe5\x39\x34\x32\x1e\xe6\x8d\x51"
+			  "\xd4\x1f\xe3\x1d\x50\xa0\x22\x37"
+			  "\x7c\xb0\xd9\xfb\xb6\xb2\x16\xf6"
+			  "\x6d\x26\xa0\x4e\x8c\x6a\xe6\xb6"
+			  "\xbe\x4c\x7c\xe3\x88\x10\x18\x90"
+			  "\x11\x50\x19\x90\xe7\x19\x3f\xd0"
+			  "\x31\x15\x0f\x06\x96\xfe\xa7\x7b"
+			  "\xc3\x32\x88\x69\xa4\x12\xe3\x64"
+			  "\x02\x30\x17\x74\x6c\x88\x7c\x9b"
+			  "\xd6\x6d\x75\xdf\x11\x86\x70\x79"
+			  "\x48\x7d\x34\x3e\x33\x58\x07\x8b"
+			  "\xd2\x50\xac\x35\x15\x45\x05\xb4"
+			  "\x4d\x31\x97\x19\x87\x23\x4b\x87"
+			  "\x53\xdc\xa9\x19\x78\xf1\xbf\x35"
+			  "\x30\x04\x14\xd4\xcf\xb2\x8c\x87"
+			  "\x7d\xdb\x69\xc9\xcd\xfe\x40\x3e"
+			  "\x8d\x66\x5b\x61\xe5\xf0\x2d\x87"
+			  "\x93\x3a\x0c\x2b\x04\x98\x05\xc2"
+			  "\x56\x4d\xc4\x6c\xcd\x7a\x98\x7e"
+			  "\xe2\x2d\x79\x07\x91\x9f\xdf\x2f"
+			  "\x72\xc9\x8f\xcb\x0b\x87\x1b\xb7"
+			  "\x04\x86\xcb\x47\xfa\x5d\x03",
+		.ctext	= "\x0b\x00\xf7\xf2\xc8\x6a\xba\x9a"
+			  "\x0a\x97\x18\x7a\x00\xa0\xdb\xf4"
+			  "\x5e\x8e\x4a\xb7\xe0\x51\xf1\x75"
+			  "\x17\x8b\xb4\xf1\x56\x11\x05\x9f"
+			  "\x2f\x2e\xba\x67\x04\xe1\xb4\xa5"
+			  "\xfc\x7c\x8c\xad\xc6\xb9\xd1\x64"
+			  "\xca\xbd\x5d\xaf\xdb\x65\x48\x4f"
+			  "\x1b\xb3\x94\x5c\x0b\xd0\xee\xcd"
+			  "\xb5\x7f\x43\x8a\xd8\x8b\x66\xde"
+			  "\xd2\x9c\x13\x65\xa4\x47\xa7\x03"
+			  "\xc5\xa1\x46\x8f\x2f\x84\xbc\xef"
+			  "\x48\x9d\x9d\xb5\xbd\x43\xff\xd2"
+			  "\xd2\x7a\x5a\x13\xbf\xb4\xf6\x05"
+			  "\x17\xcd\x01\x12\xf0\x35\x27\x96"
+			  "\xf4\xc1\x65\xf7\x69\xef\x64\x1b"
+			  "\x6e\x4a\xe8\x77\xce\x83\x01\xb7"
+			  "\x60\xe6\x45\x2a\xcd\x41\x4a\xb5"
+			  "\x8e\xcc\x45\x93\xf1\xd6\x64\x5f"
+			  "\x32\x60\xe4\x29\x4a\x82\x6c\x86"
+			  "\x16\xe4\xcc\xdb\x5f\xc8\x11\xa6"
+			  "\xfe\x88\xd6\xc3\xe5\x5c\xbb\x67"
+			  "\xec\xa5\x7b\xf5\xa8\x4f\x77\x25"
+			  "\x5d\x0c\x2a\x99\xf9\xb9\xd1\xae"
+			  "\x3c\x83\x2a\x93\x9b\x66\xec\x68"
+			  "\x2c\x93\x02\x8a\x8a\x1e\x2f\x50"
+			  "\x09\x37\x19\x5c\x2a\x3a\xc2\xcb"
+			  "\xcb\x89\x82\x81\xb7\xbb\xef\x73"
+			  "\x8b\xc9\xae\x42\x96\xef\x70\xc0"
+			  "\x89\xc7\x3e\x6a\x26\xc3\xe4\x39"
+			  "\x53\xa9\xcf\x63\x7d\x05\xf3\xff"
+			  "\x52\x04\xf6\x7f\x23\x96\xe9\xf7"
+			  "\xff\xd6\x50\xa3\x0e\x20\x71",
+		.klen	= 32,
+		.len	= 255,
+	},
+	{
+		.key	= "\x39\x5f\xf4\x9c\x90\x3a\x9a\x25"
+			  "\x15\x11\x79\x39\xed\x26\x5e\xf6"
+			  "\xda\xcf\x33\x4f\x82\x97\xab\x10"
+			  "\xc1\x55\x48\x82\x80\xa8\x02\xb2",
+		.iv	= "\x82\x60\xd9\x06\xeb\x40\x99\x76"
+			  "\x08\xc5\xa4\x83\x45\xb8\x38\x5a",
+		.ptext	= "\xa1\xa8\xac\xac\x08\xaf\x8f\x84"
+			  "\xbf\xcc\x79\x31\x5e\x61\x01\xd1"
+			  "\x4d\x5f\x9b\xcd\x91\x92\x9a\xa1"
+			  "\x99\x0d\x49\xb2\xd7\xfd\x25\x93"
+			  "\x51\x96\xbd\x91\x8b\x08\xf1\xc6"
+			  "\x0d\x17\xf6\xef\xfd\xd2\x78\x16"
+			  "\xc8\x08\x27\x7b\xca\x98\xc6\x12"
+			  "\x86\x11\xdb\xd5\x08\x3d\x5a\x2c"
+			  "\xcf\x15\x0e\x9b\x42\x78\xeb\x1f"
+			  "\x52\xbc\xd7\x5a\x8a\x33\x6c\x14"
+			  "\xfc\x61\xad\x2e\x1e\x03\x66\xea"
+			  "\x79\x0e\x88\x88\xde\x93\xe3\x81"
+			  "\xb5\xc4\x1c\xe6\x9c\x08\x18\x8e"
+			  "\xa0\x87\xda\xe6\xf8\xcb\x30\x44"
+			  "\x2d\x4e\xc0\xa3\x60\xf9\x62\x7b"
+			  "\x4b\xd5\x61\x6d\xe2\x67\x95\x54"
+			  "\x10\xd1\xca\x22\xe8\xb6\xb1\x3a"
+			  "\x2d\xd7\x35\x5b\x22\x88\x55\x67"
+			  "\x3d\x83\x8f\x07\x98\xa8\xf2\xcf"
+			  "\x04\xb7\x9e\x52\xca\xe0\x98\x72"
+			  "\x5c\xc1\x00\xd4\x1f\x2c\x61\xf3"
+			  "\xe8\x40\xaf\x4a\xee\x66\x41\xa0"
+			  "\x02\x77\x29\x30\x65\x59\x4b\x20"
+			  "\x7b\x0d\x80\x97\x27\x7f\xd5\x90"
+			  "\xbb\x9d\x76\x90\xe5\x43\x43\x72"
+			  "\xd0\xd4\x14\x75\x66\xb3\xb6\xaf"
+			  "\x09\xe4\x23\xb0\x62\xad\x17\x28"
+			  "\x39\x26\xab\xf5\xf7\x5c\xb6\x33"
+			  "\xbd\x27\x09\x5b\x29\xe4\x40\x0b"
+			  "\xc1\x26\x32\xdb\x9a\xdf\xf9\x5a"
+			  "\xae\x03\x2c\xa4\x40\x84\x9a\xb7"
+			  "\x4e\x47\xa8\x0f\x23\xc7\xbb\xcf"
+			  "\x2b\xf2\x32\x6c\x35\x6a\x91\xba"
+			  "\x0e\xea\xa2\x8b\x2f\xbd\xb5\xea"
+			  "\x6e\xbc\xb5\x4b\x03\xb3\x86\xe0"
+			  "\x86\xcf\xba\xcb\x38\x2c\x32\xa6"
+			  "\x6d\xe5\x28\xa6\xad\xd2\x7f\x73"
+			  "\x43\x14\xf8\xb1\x99\x12\x2d\x2b"
+			  "\xdf\xcd\xf2\x81\x43\x94\xdf\xb1"
+			  "\x17\xc9\x33\xa6\x3d\xef\x96\xb8"
+			  "\xd6\x0d\x00\xec\x49\x66\x85\x5d"
+			  "\x44\x62\x12\x04\x55\x5c\x48\xd3"
+			  "\xbd\x73\xac\x54\x8f\xbf\x97\x8e"
+			  "\x85\xfd\xc2\xa1\x25\x32\x38\x6a"
+			  "\x1f\xac\x57\x3c\x4f\x56\x73\xf2"
+			  "\x1d\xb6\x48\x68\xc7\x0c\xe7\x60"
+			  "\xd2\x8e\x4d\xfb\xc7\x20\x7b\xb7"
+			  "\x45\x28\x12\xc6\x26\xae\xea\x7c"
+			  "\x5d\xe2\x46\xb5\xae\xe1\xc3\x98"
+			  "\x6f\x72\xd5\xa2\xfd\xed\x40\xfd"
+			  "\xf9\xdf\x61\xec\x45\x2c\x15\xe0"
+			  "\x1e\xbb\xde\x71\x37\x5f\x73\xc2"
+			  "\x11\xcc\x6e\x6d\xe1\xb5\x1b\xd2"
+			  "\x2a\xdd\x19\x8a\xc2\xe1\xa0\xa4"
+			  "\x26\xeb\xb2\x2c\x4f\x77\x52\xf1"
+			  "\x42\x72\x6c\xad\xd7\x78\x5d\x72"
+			  "\xc9\x16\x26\x25\x1b\x4c\xe6\x58"
+			  "\x79\x57\xb5\x06\x15\x4f\xe5\xba"
+			  "\xa2\x7f\x2d\x5b\x87\x8a\x44\x70"
+			  "\xec\xc7\xef\x84\xae\x60\xa2\x61"
+			  "\x86\xe9\x18\xcd\x28\xc4\xa4\xf5"
+			  "\xbc\x84\xb8\x86\xa0\xba\xf1\xf1"
+			  "\x08\x3b\x32\x75\x35\x22\x7a\x65"
+			  "\xca\x48\xe8\xef\x6e\xe2\x8e\x00",
+		.ctext	= "\x2f\xae\xd8\x67\xeb\x15\xde\x75"
+			  "\x53\xa3\x0e\x5a\xcf\x1c\xbe\xea"
+			  "\xde\xf9\xcf\xc2\x9f\xfd\x0f\x44"
+			  "\xc0\xe0\x7a\x76\x1d\xcb\x4a\xf8"
+			  "\x35\xd6\xe3\x95\x98\x6b\x3f\x89"
+			  "\xc4\xe6\xb6\x6f\xe1\x8b\x39\x4b"
+			  "\x1c\x6c\x77\xe4\xe1\x8a\xbc\x61"
+			  "\x00\x6a\xb1\x37\x2f\x45\xe6\x04"
+			  "\x52\x0b\xfc\x1e\x32\xc1\xd8\x9d"
+			  "\xfa\xdd\x67\x5c\xe0\x75\x83\xd0"
+			  "\x21\x9e\x02\xea\xc0\x7f\xc0\x29"
+			  "\xb3\x6c\xa5\x97\xb3\x29\x82\x1a"
+			  "\x94\xa5\xb4\xb6\x49\xe5\xa5\xad"
+			  "\x95\x40\x52\x7c\x84\x88\xa4\xa8"
+			  "\x26\xe4\xd9\x5d\x41\xf2\x93\x7b"
+			  "\xa4\x48\x1b\x66\x91\xb9\x7c\xc2"
+			  "\x99\x29\xdf\xd8\x30\xac\xd4\x47"
+			  "\x42\xa0\x14\x87\x67\xb8\xfd\x0b"
+			  "\x1e\xcb\x5e\x5c\x9a\xc2\x04\x8b"
+			  "\x17\x29\x9d\x99\x7f\x86\x4c\xe2"
+			  "\x5c\x96\xa6\x0f\xb6\x47\x33\x5c"
+			  "\xe4\x50\x49\xd5\x4f\x92\x0b\x9a"
+			  "\xbc\x52\x4c\x41\xf5\xc9\x3e\x76"
+			  "\x55\x55\xd4\xdc\x71\x14\x23\xfc"
+			  "\x5f\xd5\x08\xde\xa0\xf7\x28\xc0"
+			  "\xe1\x61\xac\x64\x66\xf6\xd1\x31"
+			  "\xe4\xa4\xa9\xed\xbc\xad\x4f\x3b"
+			  "\x59\xb9\x48\x1b\xe7\xb1\x6f\xc6"
+			  "\xba\x40\x1c\x0b\xe7\x2f\x31\x65"
+			  "\x85\xf5\xe9\x14\x0a\x31\xf5\xf3"
+			  "\xc0\x1c\x20\x35\x73\x38\x0f\x8e"
+			  "\x39\xf0\x68\xae\x08\x9c\x87\x4b"
+			  "\x42\xfc\x22\x17\xee\x96\x51\x2a"
+			  "\xd8\x57\x5a\x35\xea\x72\x74\xfc"
+			  "\xb3\x0e\x69\x9a\xe1\x4f\x24\x90"
+			  "\xc5\x4b\xe5\xd7\xe3\x82\x2f\xc5"
+			  "\x62\x46\x3e\xab\x72\x4e\xe0\xf3"
+			  "\x90\x09\x4c\xb2\xe1\xe8\xa0\xf5"
+			  "\x46\x40\x2b\x47\x85\x3c\x21\x90"
+			  "\x3d\xad\x25\x5a\x36\xdf\xe5\xbc"
+			  "\x7e\x80\x4d\x53\x77\xf1\x79\xa6"
+			  "\xec\x22\x80\x88\x68\xd6\x2d\x8b"
+			  "\x3e\xf7\x52\xc7\x2a\x20\x42\x5c"
+			  "\xed\x99\x4f\x32\x80\x00\x7e\x73"
+			  "\xd7\x6d\x7f\x7d\x42\x54\x4a\xfe"
+			  "\xff\x6f\x61\xca\x2a\xbb\x4f\xeb"
+			  "\x4f\xe4\x4e\xaf\x2c\x4f\x82\xcd"
+			  "\xa1\xa7\x11\xb3\x34\x33\xcf\x32"
+			  "\x63\x0e\x24\x3a\x35\xbe\x06\xd5"
+			  "\x17\xcb\x02\x30\x33\x6e\x8c\x49"
+			  "\x40\x6e\x34\x8c\x07\xd4\x3e\xe6"
+			  "\xaf\x78\x6d\x8c\x10\x5f\x21\x58"
+			  "\x49\x26\xc5\xaf\x0d\x7d\xd4\xaf"
+			  "\xcd\x5b\xa1\xe3\xf6\x39\x1c\x9b"
+			  "\x8e\x00\xa1\xa7\x9e\x17\x4a\xc0"
+			  "\x54\x56\x9e\xcf\xcf\x88\x79\x8d"
+			  "\x50\xf7\x56\x8e\x0a\x73\x46\x6b"
+			  "\xc3\xb9\x9b\x6c\x7d\xc4\xc8\xb6"
+			  "\x03\x5f\x30\x62\x7d\xe6\xdb\x15"
+			  "\xe1\x39\x02\x8c\xff\xda\xc8\x43"
+			  "\xf2\xa9\xbf\x00\xe7\x3a\x61\x89"
+			  "\xdf\xb0\xca\x7d\x8c\x8a\x6a\x9f"
+			  "\x18\x89\x3d\x39\xac\x36\x6f\x05"
+			  "\x1f\xb5\xda\x00\xea\xe1\x51\x21",
+		.klen	= 32,
+		.len	= 512,
+	},
+
+};
+
+/*
+ * Test vectors generated using https://github.com/google/hctr2
+ *
+ * To ensure compatibility with RFC 8452, some tests were sourced from
+ * https://datatracker.ietf.org/doc/html/rfc8452
+ */
+static const struct hash_testvec polyval_tv_template[] = {
+	{ // From RFC 8452
+		.key	= "\x31\x07\x28\xd9\x91\x1f\x1f\x38"
+			  "\x37\xb2\x43\x16\xc3\xfa\xb9\xa0",
+		.plaintext	= "\x65\x78\x61\x6d\x70\x6c\x65\x00"
+			  "\x00\x00\x00\x00\x00\x00\x00\x00"
+			  "\x48\x65\x6c\x6c\x6f\x20\x77\x6f"
+			  "\x72\x6c\x64\x00\x00\x00\x00\x00"
+			  "\x38\x00\x00\x00\x00\x00\x00\x00"
+			  "\x58\x00\x00\x00\x00\x00\x00\x00",
+		.digest	= "\xad\x7f\xcf\x0b\x51\x69\x85\x16"
+			  "\x62\x67\x2f\x3c\x5f\x95\x13\x8f",
+		.psize	= 48,
+		.ksize	= 16,
+	},
+	{ // From RFC 8452
+		.key	= "\xd9\xb3\x60\x27\x96\x94\x94\x1a"
+			  "\xc5\xdb\xc6\x98\x7a\xda\x73\x77",
+		.plaintext	= "\x00\x00\x00\x00\x00\x00\x00\x00"
+			  "\x00\x00\x00\x00\x00\x00\x00\x00",
+		.digest	= "\x00\x00\x00\x00\x00\x00\x00\x00"
+			  "\x00\x00\x00\x00\x00\x00\x00\x00",
+		.psize	= 16,
+		.ksize	= 16,
+	},
+	{ // From RFC 8452
+		.key	= "\xd9\xb3\x60\x27\x96\x94\x94\x1a"
+			  "\xc5\xdb\xc6\x98\x7a\xda\x73\x77",
+		.plaintext	= "\x01\x00\x00\x00\x00\x00\x00\x00"
+			  "\x00\x00\x00\x00\x00\x00\x00\x00"
+			  "\x00\x00\x00\x00\x00\x00\x00\x00"
+			  "\x40\x00\x00\x00\x00\x00\x00\x00",
+		.digest	= "\xeb\x93\xb7\x74\x09\x62\xc5\xe4"
+			  "\x9d\x2a\x90\xa7\xdc\x5c\xec\x74",
+		.psize	= 32,
+		.ksize	= 16,
+	},
+	{ // From RFC 8452
+		.key	= "\xd9\xb3\x60\x27\x96\x94\x94\x1a"
+			  "\xc5\xdb\xc6\x98\x7a\xda\x73\x77",
+		.plaintext	= "\x01\x00\x00\x00\x00\x00\x00\x00"
+			  "\x00\x00\x00\x00\x00\x00\x00\x00"
+			  "\x02\x00\x00\x00\x00\x00\x00\x00"
+			  "\x00\x00\x00\x00\x00\x00\x00\x00"
+			  "\x03\x00\x00\x00\x00\x00\x00\x00"
+			  "\x00\x00\x00\x00\x00\x00\x00\x00"
+			  "\x00\x00\x00\x00\x00\x00\x00\x00"
+			  "\x80\x01\x00\x00\x00\x00\x00\x00",
+		.digest	= "\x81\x38\x87\x46\xbc\x22\xd2\x6b"
+			  "\x2a\xbc\x3d\xcb\x15\x75\x42\x22",
+		.psize	= 64,
+		.ksize	= 16,
+	},
+	{ // From RFC 8452
+		.key	= "\xd9\xb3\x60\x27\x96\x94\x94\x1a"
+			  "\xc5\xdb\xc6\x98\x7a\xda\x73\x77",
+		.plaintext	= "\x01\x00\x00\x00\x00\x00\x00\x00"
+			  "\x00\x00\x00\x00\x00\x00\x00\x00"
+			  "\x02\x00\x00\x00\x00\x00\x00\x00"
+			  "\x00\x00\x00\x00\x00\x00\x00\x00"
+			  "\x03\x00\x00\x00\x00\x00\x00\x00"
+			  "\x00\x00\x00\x00\x00\x00\x00\x00"
+			  "\x04\x00\x00\x00\x00\x00\x00\x00"
+			  "\x00\x00\x00\x00\x00\x00\x00\x00"
+			  "\x00\x00\x00\x00\x00\x00\x00\x00"
+			  "\x00\x02\x00\x00\x00\x00\x00\x00",
+		.digest	= "\x1e\x39\xb6\xd3\x34\x4d\x34\x8f"
+			  "\x60\x44\xf8\x99\x35\xd1\xcf\x78",
+		.psize	= 80,
+		.ksize	= 16,
+	},
+	{ // From RFC 8452
+		.key	= "\xd9\xb3\x60\x27\x96\x94\x94\x1a"
+			  "\xc5\xdb\xc6\x98\x7a\xda\x73\x77",
+		.plaintext	= "\x01\x00\x00\x00\x00\x00\x00\x00"
+			  "\x00\x00\x00\x00\x00\x00\x00\x00"
+			  "\x02\x00\x00\x00\x00\x00\x00\x00"
+			  "\x00\x00\x00\x00\x00\x00\x00\x00"
+			  "\x03\x00\x00\x00\x00\x00\x00\x00"
+			  "\x00\x00\x00\x00\x00\x00\x00\x00"
+			  "\x04\x00\x00\x00\x00\x00\x00\x00"
+			  "\x00\x00\x00\x00\x00\x00\x00\x00"
+			  "\x05\x00\x00\x00\x00\x00\x00\x00"
+			  "\x00\x00\x00\x00\x00\x00\x00\x00"
+			  "\x08\x00\x00\x00\x00\x00\x00\x00"
+			  "\x00\x02\x00\x00\x00\x00\x00\x00",
+		.digest	= "\xff\xcd\x05\xd5\x77\x0f\x34\xad"
+			  "\x92\x67\xf0\xa5\x99\x94\xb1\x5a",
+		.psize	= 96,
+		.ksize	= 16,
+	},
+	{ // Random ( 1)
+		.key	= "\x90\xcc\xac\xee\xba\xd7\xd4\x68"
+			  "\x98\xa6\x79\x70\xdf\x66\x15\x6c",
+		.plaintext	= "",
+		.digest	= "\x00\x00\x00\x00\x00\x00\x00\x00"
+			  "\x00\x00\x00\x00\x00\x00\x00\x00",
+		.psize	= 0,
+		.ksize	= 16,
+	},
+	{ // Random ( 1)
+		.key	= "\xc1\x45\x71\xf0\x30\x07\x94\xe7"
+			  "\x3a\xdd\xe4\xc6\x19\x2d\x02\xa2",
+		.plaintext	= "\xc1\x5d\x47\xc7\x4c\x7c\x5e\x07"
+			  "\x85\x14\x8f\x79\xcc\x73\x83\xf7"
+			  "\x35\xb8\xcb\x73\x61\xf0\x53\x31"
+			  "\xbf\x84\xde\xb6\xde\xaf\xb0\xb8"
+			  "\xb7\xd9\x11\x91\x89\xfd\x1e\x4c"
+			  "\x84\x4a\x1f\x2a\x87\xa4\xaf\x62"
+			  "\x8d\x7d\x58\xf6\x43\x35\xfc\x53"
+			  "\x8f\x1a\xf6\x12\xe1\x13\x3f\x66"
+			  "\x91\x4b\x13\xd6\x45\xfb\xb0\x7a"
+			  "\xe0\x8b\x8e\x99\xf7\x86\x46\x37"
+			  "\xd1\x22\x9e\x52\xf3\x3f\xd9\x75"
+			  "\x2c\x2c\xc6\xbb\x0e\x08\x14\x29"
+			  "\xe8\x50\x2f\xd8\xbe\xf4\xe9\x69"
+			  "\x4a\xee\xf7\xae\x15\x65\x35\x1e",
+		.digest	= "\x00\x4f\x5d\xe9\x3b\xc0\xd6\x50"
+			  "\x3e\x38\x73\x86\xc6\xda\xca\x7f",
+		.psize	= 112,
+		.ksize	= 16,
+	},
+	{ // Random ( 1)
+		.key	= "\x37\xbe\x68\x16\x50\xb9\x4e\xb0"
+			  "\x47\xde\xe2\xbd\xde\xe4\x48\x09",
+		.plaintext	= "\x87\xfc\x68\x9f\xff\xf2\x4a\x1e"
+			  "\x82\x3b\x73\x8f\xc1\xb2\x1b\x7a"
+			  "\x6c\x4f\x81\xbc\x88\x9b\x6c\xa3"
+			  "\x9c\xc2\xa5\xbc\x14\x70\x4c\x9b"
+			  "\x0c\x9f\x59\x92\x16\x4b\x91\x3d"
+			  "\x18\x55\x22\x68\x12\x8c\x63\xb2"
+			  "\x51\xcb\x85\x4b\xd2\xae\x0b\x1c"
+			  "\x5d\x28\x9d\x1d\xb1\xc8\xf0\x77"
+			  "\xe9\xb5\x07\x4e\x06\xc8\xee\xf8"
+			  "\x1b\xed\x72\x2a\x55\x7d\x16\xc9"
+			  "\xf2\x54\xe7\xe9\xe0\x44\x5b\x33"
+			  "\xb1\x49\xee\xff\x43\xfb\x82\xcd"
+			  "\x4a\x70\x78\x81\xa4\x34\x36\xe8"
+			  "\x4c\x28\x54\xa6\x6c\xc3\x6b\x78"
+			  "\xe7\xc0\x5d\xc6\x5d\x81\xab\x70"
+			  "\x08\x86\xa1\xfd\xf4\x77\x55\xfd"
+			  "\xa3\xe9\xe2\x1b\xdf\x99\xb7\x80"
+			  "\xf9\x0a\x4f\x72\x4a\xd3\xaf\xbb"
+			  "\xb3\x3b\xeb\x08\x58\x0f\x79\xce"
+			  "\xa5\x99\x05\x12\x34\xd4\xf4\x86"
+			  "\x37\x23\x1d\xc8\x49\xc0\x92\xae"
+			  "\xa6\xac\x9b\x31\x55\xed\x15\xc6"
+			  "\x05\x17\x37\x8d\x90\x42\xe4\x87"
+			  "\x89\x62\x88\x69\x1c\x6a\xfd\xe3"
+			  "\x00\x2b\x47\x1a\x73\xc1\x51\xc2"
+			  "\xc0\x62\x74\x6a\x9e\xb2\xe5\x21"
+			  "\xbe\x90\xb5\xb0\x50\xca\x88\x68"
+			  "\xe1\x9d\x7a\xdf\x6c\xb7\xb9\x98"
+			  "\xee\x28\x62\x61\x8b\xd1\x47\xf9"
+			  "\x04\x7a\x0b\x5d\xcd\x2b\x65\xf5"
+			  "\x12\xa3\xfe\x1a\xaa\x2c\x78\x42"
+			  "\xb8\xbe\x7d\x74\xeb\x59\xba\xba",
+		.digest	= "\xae\x11\xd4\x60\x2a\x5f\x9e\x42"
+			  "\x89\x04\xc2\x34\x8d\x55\x94\x0a",
+		.psize	= 256,
+		.ksize	= 16,
+	},
+
+};
+
+/*
+ * Test vectors generated using https://github.com/google/hctr2
+ */
+static const struct cipher_testvec aes_hctr2_tv_template[] = {
+	{
+		.key	= "\xe1\x15\x66\x3c\x8d\xc6\x3a\xff"
+			  "\xef\x41\xd7\x47\xa2\xcc\x8a\xba",
+		.iv	= "\xc3\xbe\x2a\xcb\xb5\x39\x86\xf1"
+			  "\x91\xad\x6c\xf4\xde\x74\x45\x63"
+			  "\x5c\x7a\xd5\xcc\x8b\x76\xef\x0e"
+			  "\xcf\x2c\x60\x69\x37\xfd\x07\x96",
+		.ptext	= "\x65\x75\xae\xd3\xe2\xbc\x43\x5c"
+			  "\xb3\x1a\xd8\x05\xc3\xd0\x56\x29",
+		.ctext	= "\x11\x91\xea\x74\x58\xcc\xd5\xa2"
+			  "\xd0\x55\x9e\x3d\xfe\x7f\xc8\xfe",
+		.klen	= 16,
+		.len	= 16,
+	},
+	{
+		.key	= "\xe7\xd1\x77\x48\x76\x0b\xcd\x34"
+			  "\x2a\x2d\xe7\x74\xca\x11\x9c\xae",
+		.iv	= "\x71\x1c\x49\x62\xd9\x5b\x50\x5e"
+			  "\x68\x87\xbc\xf6\x89\xff\xed\x30"
+			  "\xe4\xe5\xbd\xb6\x10\x4f\x9f\x66"
+			  "\x28\x06\x5a\xf4\x27\x35\xcd\xe5",
+		.ptext	= "\x87\x03\x8f\x06\xa8\x61\x54\xda"
+			  "\x01\x45\xd4\x01\xef\x4a\x22\xcf"
+			  "\x78\x15\x9f\xbd\x64\xbd\x2c\xb9"
+			  "\x40\x1d\x72\xae\x53\x63\xa5",
+		.ctext	= "\x4e\xa1\x05\x27\xb8\x45\xe4\xa1"
+			  "\xbb\x30\xb4\xa6\x12\x74\x63\xd6"
+			  "\x17\xc9\xcc\x2f\x18\x64\xe0\x06"
+			  "\x0a\xa0\xff\x72\x10\x7b\x22",
+		.klen	= 16,
+		.len	= 31,
+	},
+	{
+		.key	= "\x59\x65\x3b\x1d\x43\x5e\xc0\xae"
+			  "\xb8\x9d\x9b\xdd\x22\x03\xbf\xca",
+		.iv	= "\xec\x95\xfa\x5a\xcf\x5e\xd2\x93"
+			  "\xa3\xb5\xe5\xbe\xf3\x01\x7b\x01"
+			  "\xd1\xca\x6c\x06\x82\xf0\xbd\x67"
+			  "\xd9\x6c\xa4\xdc\xb4\x38\x0f\x74",
+		.ptext	= "\x45\xdf\x75\x87\xbc\x72\xce\x55"
+			  "\xc9\xfa\xcb\xfc\x9f\x40\x82\x2b"
+			  "\xc6\x4f\x4f\x5b\x8b\x3b\x6d\x67"
+			  "\xa6\x93\x62\x89\x8c\x19\xf4\xe3"
+			  "\x08\x92\x9c\xc9\x47\x2c\x6e\xd0"
+			  "\xa3\x02\x2b\xdb\x2c\xf2\x8d\x46"
+			  "\xcd\xb0\x9d\x26\x63\x4c\x40\x6b"
+			  "\x79\x43\xe5\xce\x42\xa8\xec\x3b"
+			  "\x5b\xd0\xea\xa4\xe6\xdb\x66\x55"
+			  "\x7a\x76\xec\xab\x7d\x2a\x2b\xbd"
+			  "\xa9\xab\x22\x64\x1a\xa1\xae\x84"
+			  "\x86\x79\x67\xe9\xb2\x50\xbe\x12"
+			  "\x2f\xb2\x14\xf0\xdb\x71\xd8\xa7"
+			  "\x41\x8a\x88\xa0\x6a\x6e\x9d\x2a"
+			  "\xfa\x11\x37\x40\x32\x09\x4c\x47"
+			  "\x41\x07\x31\x85\x3d\xa8\xf7\x64",
+		.ctext	= "\x2d\x4b\x9f\x93\xca\x5a\x48\x26"
+			  "\x01\xcc\x54\xe4\x31\x50\x12\xf0"
+			  "\x49\xff\x59\x42\x68\xbd\x87\x8f"
+			  "\x9e\x62\x96\xcd\xb9\x24\x57\xa4"
+			  "\x0b\x7b\xf5\x2e\x0e\xa8\x65\x07"
+			  "\xab\x05\xd5\xca\xe7\x9c\x6c\x34"
+			  "\x5d\x42\x34\xa4\x62\xe9\x75\x48"
+			  "\x3d\x9e\x8f\xfa\x42\xe9\x75\x08"
+			  "\x4e\x54\x91\x2b\xbd\x11\x0f\x8e"
+			  "\xf0\x82\xf5\x24\xf1\xc4\xfc\xae"
+			  "\x42\x54\x7f\xce\x15\xa8\xb2\x33"
+			  "\xc0\x86\xb6\x2b\xe8\x44\xce\x1f"
+			  "\x68\x57\x66\x94\x6e\xad\xeb\xf3"
+			  "\x30\xf8\x11\xbd\x60\x00\xc6\xd5"
+			  "\x4c\x81\xf1\x20\x2b\x4a\x5b\x99"
+			  "\x79\x3b\xc9\x5c\x74\x23\xe6\x5d",
+		.klen	= 16,
+		.len	= 128,
+	},
+	{
+		.key	= "\x3e\x08\x5d\x64\x6c\x98\xec\xec"
+			  "\x70\x0e\x0d\xa1\x41\x20\x99\x82",
+		.iv	= "\x11\xb7\x77\x91\x0d\x99\xd9\x8d"
+			  "\x35\x3a\xf7\x14\x6b\x09\x37\xe5"
+			  "\xad\x51\xf6\xc3\x96\x4b\x64\x56"
+			  "\xa8\xbd\x81\xcc\xbe\x94\xaf\xe4",
+		.ptext	= "\xff\x8d\xb9\xc0\xe3\x69\xb3\xb2"
+			  "\x8b\x11\x26\xb3\x11\xec\xfb\xb9"
+			  "\x9c\xc1\x71\xd6\xe3\x26\x0e\xe0"
+			  "\x68\x40\x60\xb9\x3a\x63\x56\x8a"
+			  "\x9e\xc1\xf0\x10\xb1\x64\x32\x70"
+			  "\xf8\xcd\xc6\xc4\x49\x4c\xe1\xce"
+			  "\xf3\xe1\x03\xf8\x35\xae\xe0\x5e"
+			  "\xef\x5f\xbc\x41\x75\x26\x13\xcc"
+			  "\x37\x85\xdf\xc0\x5d\xa6\x47\x98"
+			  "\xf1\x97\x52\x58\x04\xe6\xb5\x01"
+			  "\xc0\xb8\x17\x6d\x74\xbd\x9a\xdf"
+			  "\xa4\x37\x94\x86\xb0\x13\x83\x28"
+			  "\xc9\xa2\x07\x3f\xb5\xb2\x72\x40"
+			  "\x0e\x60\xdf\x57\x07\xb7\x2c\x66"
+			  "\x10\x3f\x8d\xdd\x30\x0a\x47\xd5"
+			  "\xe8\x9d\xfb\xa1\xaf\x53\xd7\x05"
+			  "\xc7\xd2\xba\xe7\x2c\xa0\xbf\xb8"
+			  "\xd1\x93\xe7\x41\x82\xa3\x41\x3a"
+			  "\xaf\x12\xd6\xf8\x34\xda\x92\x46"
+			  "\xad\xa2\x2f\xf6\x7e\x46\x96\xd8"
+			  "\x03\xf3\x49\x64\xde\xd8\x06\x8b"
+			  "\xa0\xbc\x63\x35\x38\xb6\x6b\xda"
+			  "\x5b\x50\x3f\x13\xa5\x84\x1b\x1b"
+			  "\x66\x89\x95\xb7\xc2\x16\x3c\xe9"
+			  "\x24\xb0\x8c\x6f\x49\xef\xf7\x28"
+			  "\x6a\x24\xfd\xbe\x25\xe2\xb4\x90"
+			  "\x77\x44\x08\xb8\xda\xd2\xde\x2c"
+			  "\xa0\x57\x45\x57\x29\x47\x6b\x89"
+			  "\x4a\xf6\xa7\x2a\xc3\x9e\x7b\xc8"
+			  "\xfd\x9f\x89\xab\xee\x6d\xa3\xb4"
+			  "\x23\x90\x7a\xe9\x89\xa0\xc7\xb3"
+			  "\x17\x41\x87\x91\xfc\x97\x42",
+		.ctext	= "\xfc\x9b\x96\x66\xc4\x82\x2a\x4a"
+			  "\xb1\x24\xba\xc7\x78\x5f\x79\xc1"
+			  "\x57\x2e\x47\x29\x4d\x7b\xd2\x9a"
+			  "\xbd\xc6\xc1\x26\x7b\x8e\x3f\x5d"
+			  "\xd4\xb4\x9f\x6a\x02\x24\x4a\xad"
+			  "\x0c\x00\x1b\xdf\x92\xc5\x8a\xe1"
+			  "\x77\x79\xcc\xd5\x20\xbf\x83\xf4"
+			  "\x4b\xad\x11\xbf\xdb\x47\x65\x70"
+			  "\x43\xf3\x65\xdf\xb7\xdc\xb2\xb9"
+			  "\xaa\x3f\xb3\xdf\x79\x69\x0d\xa0"
+			  "\x86\x1c\xba\x48\x0b\x01\xc1\x88"
+			  "\xdf\x03\xb1\x06\x3c\x1d\x56\xa1"
+			  "\x8e\x98\xc1\xa6\x95\xa2\x5b\x72"
+			  "\x76\x59\xd2\x26\x25\xcd\xef\x7c"
+			  "\xc9\x60\xea\x43\xd1\x12\x8a\x8a"
+			  "\x63\x12\x78\xcb\x2f\x88\x1e\x88"
+			  "\x78\x59\xde\xba\x4d\x2c\x78\x61"
+			  "\x75\x37\x54\xfd\x80\xc7\x5e\x98"
+			  "\xcf\x14\x62\x8e\xfb\x72\xee\x4d"
+			  "\x9f\xaf\x8b\x09\xe5\x21\x0a\x91"
+			  "\x8f\x88\x87\xd5\xb1\x84\xab\x18"
+			  "\x08\x57\xed\x72\x35\xa6\x0e\xc6"
+			  "\xff\xcb\xfe\x2c\x48\x39\x14\x44"
+			  "\xba\x59\x32\x3a\x2d\xc4\x5f\xcb"
+			  "\xbe\x68\x8e\x7b\xee\x21\xa4\x32"
+			  "\x11\xa0\x99\xfd\x90\xde\x59\x43"
+			  "\xeb\xed\xd5\x87\x68\x46\xc6\xde"
+			  "\x0b\x07\x17\x59\x6a\xab\xca\x15"
+			  "\x65\x02\x01\xb6\x71\x8c\x3b\xaa"
+			  "\x18\x3b\x30\xae\x38\x5b\x2c\x74"
+			  "\xd4\xee\x4a\xfc\xf7\x1b\x09\xd4"
+			  "\xda\x8b\x1d\x5d\x6f\x21\x6c",
+		.klen	= 16,
+		.len	= 255,
+	},
+	{
+		.key	= "\x24\xf6\xe1\x62\xe5\xaf\x99\xda"
+			  "\x84\xec\x41\xb0\xa3\x0b\xd5\xa8"
+			  "\xa0\x3e\x7b\xa6\xdd\x6c\x8f\xa8",
+		.iv	= "\x7f\x80\x24\x62\x32\xdd\xab\x66"
+			  "\xf2\x87\x29\x24\xec\xd2\x4b\x9f"
+			  "\x0c\x33\x52\xd9\xe0\xcc\x6e\xe4"
+			  "\x90\x85\x43\x97\xc4\x62\x14\x33",
+		.ptext	= "\xef\x58\xe7\x7f\xa9\xd9\xb8\xd7"
+			  "\xa2\x91\x97\x07\x27\x9e\xba\xe8"
+			  "\xaa",
+		.ctext	= "\xd7\xc3\x81\x91\xf2\x40\x17\x73"
+			  "\x3e\x3b\x1c\x2a\x8e\x11\x9c\x17"
+			  "\xf1",
+		.klen	= 24,
+		.len	= 17,
+	},
+	{
+		.key	= "\xbf\xaf\xd7\x67\x8c\x47\xcf\x21"
+			  "\x8a\xa5\xdd\x32\x25\x47\xbe\x4f"
+			  "\xf1\x3a\x0b\xa6\xaa\x2d\xcf\x09",
+		.iv	= "\xd9\xe8\xf0\x92\x4e\xfc\x1d\xf2"
+			  "\x81\x37\x7c\x8f\xf1\x59\x09\x20"
+			  "\xf4\x46\x51\x86\x4f\x54\x8b\x32"
+			  "\x58\xd1\x99\x8b\x8c\x03\xeb\x5d",
+		.ptext	= "\xcd\x64\x90\xf9\x7c\xe5\x0e\x5a"
+			  "\x75\xe7\x8e\x39\x86\xec\x20\x43"
+			  "\x8a\x49\x09\x15\x47\xf4\x3c\x89"
+			  "\x21\xeb\xcf\x4e\xcf\x91\xb5\x40"
+			  "\xcd\xe5\x4d\x5c\x6f\xf2\xd2\x80"
+			  "\xfa\xab\xb3\x76\x9f\x7f\x84\x0a",
+		.ctext	= "\x44\x98\x64\x15\xb7\x0b\x80\xa3"
+			  "\xb9\xca\x23\xff\x3b\x0b\x68\x74"
+			  "\xbb\x3e\x20\x19\x9f\x28\x71\x2a"
+			  "\x48\x3c\x7c\xe2\xef\xb5\x10\xac"
+			  "\x82\x9f\xcd\x08\x8f\x6b\x16\x6f"
+			  "\xc3\xbb\x07\xfb\x3c\xb0\x1b\x27",
+		.klen	= 24,
+		.len	= 48,
+	},
+	{
+		.key	= "\xb8\x35\xa2\x5f\x86\xbb\x82\x99"
+			  "\x27\xeb\x01\x3f\x92\xaf\x80\x24"
+			  "\x4c\x66\xa2\x89\xff\x2e\xa2\x25",
+		.iv	= "\x0a\x1d\x96\xd3\xe0\xe8\x0c\x9b"
+			  "\x9d\x6f\x21\x97\xc2\x17\xdb\x39"
+			  "\x3f\xd8\x64\x48\x80\x04\xee\x43"
+			  "\x02\xce\x88\xe2\x81\x81\x5f\x81",
+		.ptext	= "\xb8\xf9\x16\x8b\x25\x68\xd0\x9c"
+			  "\xd2\x28\xac\xa8\x79\xc2\x30\xc1"
+			  "\x31\xde\x1c\x37\x1b\xa2\xb5\xe6"
+			  "\xf0\xd0\xf8\x9c\x7f\xc6\x46\x07"
+			  "\x5c\xc3\x06\xe4\xf0\x02\xec\xf8"
+			  "\x59\x7c\xc2\x5d\xf8\x0c\x21\xae"
+			  "\x9e\x82\xb1\x1a\x5f\x78\x44\x15"
+			  "\x00\xa7\x2e\x52\xc5\x98\x98\x35"
+			  "\x03\xae\xd0\x8e\x07\x57\xe2\x5a"
+			  "\x17\xbf\x52\x40\x54\x5b\x74\xe5"
+			  "\x2d\x35\xaf\x9e\x37\xf7\x7e\x4a"
+			  "\x8c\x9e\xa1\xdc\x40\xb4\x5b\x36"
+			  "\xdc\x3a\x68\xe6\xb7\x35\x0b\x8a"
+			  "\x90\xec\x74\x8f\x09\x9a\x7f\x02"
+			  "\x4d\x03\x46\x35\x62\xb1\xbd\x08"
+			  "\x3f\x54\x2a\x10\x0b\xdc\x69\xaf"
+			  "\x25\x3a\x0c\x5f\xe0\x51\xe7\x11"
+			  "\xb7\x00\xab\xbb\x9a\xb0\xdc\x4d"
+			  "\xc3\x7d\x1a\x6e\xd1\x09\x52\xbd"
+			  "\x6b\x43\x55\x22\x3a\x78\x14\x7d"
+			  "\x79\xfd\x8d\xfc\x9b\x1d\x0f\xa2"
+			  "\xc7\xb9\xf8\x87\xd5\x96\x50\x61"
+			  "\xa7\x5e\x1e\x57\x97\xe0\xad\x2f"
+			  "\x93\xe6\xe8\x83\xec\x85\x26\x5e"
+			  "\xd9\x2a\x15\xe0\xe9\x09\x25\xa1"
+			  "\x77\x2b\x88\xdc\xa4\xa5\x48\xb6"
+			  "\xf7\xcc\xa6\xa9\xba\xf3\x42\x5c"
+			  "\x70\x9d\xe9\x29\xc1\xf1\x33\xdd"
+			  "\x56\x48\x17\x86\x14\x51\x5c\x10"
+			  "\xab\xfd\xd3\x26\x8c\x21\xf5\x93"
+			  "\x1b\xeb\x47\x97\x73\xbb\x88\x10"
+			  "\xf3\xfe\xf5\xde\xf3\x2e\x05\x46"
+			  "\x1c\x0d\xa3\x10\x48\x9c\x71\x16"
+			  "\x78\x33\x4d\x0a\x74\x3b\xe9\x34"
+			  "\x0b\xa7\x0e\x9e\x61\xe9\xe9\xfd"
+			  "\x85\xa0\xcb\x19\xfd\x7c\x33\xe3"
+			  "\x0e\xce\xc2\x6f\x9d\xa4\x2d\x77"
+			  "\xfd\xad\xee\x5e\x08\x3e\xd7\xf5"
+			  "\xfb\xc3\xd7\x93\x96\x08\x96\xca"
+			  "\x58\x81\x16\x9b\x98\x0a\xe2\xef"
+			  "\x7f\xda\x40\xe4\x1f\x46\x9e\x67"
+			  "\x2b\x84\xcb\x42\xc4\xd6\x6a\xcf"
+			  "\x2d\xb2\x33\xc0\x56\xb3\x35\x6f"
+			  "\x29\x36\x8f\x6a\x5b\xec\xd5\x4f"
+			  "\xa0\x70\xff\xb6\x5b\xde\x6a\x93"
+			  "\x20\x3c\xe2\x76\x7a\xef\x3c\x79"
+			  "\x31\x65\xce\x3a\x0e\xd0\xbe\xa8"
+			  "\x21\x95\xc7\x2b\x62\x8e\x67\xdd"
+			  "\x20\x79\xe4\xe5\x01\x15\xc0\xec"
+			  "\x0f\xd9\x23\xc8\xca\xdf\xd4\x7d"
+			  "\x1d\xf8\x64\x4f\x56\xb1\x83\xa7"
+			  "\x43\xbe\xfc\xcf\xc2\x8c\x33\xda"
+			  "\x36\xd0\x52\xef\x9e\x9e\x88\xf4"
+			  "\xa8\x21\x0f\xaa\xee\x8d\xa0\x24"
+			  "\x4d\xcb\xb1\x72\x07\xf0\xc2\x06"
+			  "\x60\x65\x85\x84\x2c\x60\xcf\x61"
+			  "\xe7\x56\x43\x5b\x2b\x50\x74\xfa"
+			  "\xdb\x4e\xea\x88\xd4\xb3\x83\x8f"
+			  "\x6f\x97\x4b\x57\x7a\x64\x64\xae"
+			  "\x0a\x37\x66\xc5\x03\xad\xb5\xf9"
+			  "\x08\xb0\x3a\x74\xde\x97\x51\xff"
+			  "\x48\x4f\x5c\xa4\xf8\x7a\xb4\x05"
+			  "\x27\x70\x52\x86\x1b\x78\xfc\x18"
+			  "\x06\x27\xa9\x62\xf7\xda\xd2\x8e",
+		.ctext	= "\x3b\xe1\xdb\xb3\xc5\x9a\xde\x69"
+			  "\x58\x05\xcc\xeb\x02\x51\x78\x4a"
+			  "\xac\x28\xe9\xed\xd1\xc9\x15\x7d"
+			  "\x33\x7d\xc1\x47\x12\x41\x11\xf8"
+			  "\x4a\x2c\xb7\xa3\x41\xbe\x59\xf7"
+			  "\x22\xdb\x2c\xda\x9c\x00\x61\x9b"
+			  "\x73\xb3\x0b\x84\x2b\xc1\xf3\x80"
+			  "\x84\xeb\x19\x60\x80\x09\xe1\xcd"
+			  "\x16\x3a\x20\x23\xc4\x82\x4f\xba"
+			  "\x3b\x8e\x55\xd7\xa9\x0b\x75\xd0"
+			  "\xda\xce\xd2\xee\x7e\x4b\x7f\x65"
+			  "\x4d\x28\xc5\xd3\x15\x2c\x40\x96"
+			  "\x52\xd4\x18\x61\x2b\xe7\x83\xec"
+			  "\x89\x62\x9c\x4c\x50\xe6\xe2\xbb"
+			  "\x25\xa1\x0f\xa7\xb0\xb4\xb2\xde"
+			  "\x54\x20\xae\xa3\x56\xa5\x26\x4c"
+			  "\xd5\xcc\xe5\xcb\x28\x44\xb1\xef"
+			  "\x67\x2e\x93\x6d\x00\x88\x83\x9a"
+			  "\xf2\x1c\x48\x38\xec\x1a\x24\x90"
+			  "\x73\x0a\xdb\xe8\xce\x95\x7a\x2c"
+			  "\x8c\xe9\xb7\x07\x1d\xb3\xa3\x20"
+			  "\xbe\xad\x61\x84\xac\xde\x76\xb5"
+			  "\xa6\x28\x29\x47\x63\xc4\xfc\x13"
+			  "\x3f\x71\xfb\x58\x37\x34\x82\xed"
+			  "\x9e\x05\x19\x1f\xc1\x67\xc1\xab"
+			  "\xf5\xfd\x7c\xea\xfa\xa4\xf8\x0a"
+			  "\xac\x4c\x92\xdf\x65\x73\xd7\xdb"
+			  "\xed\x2c\xe0\x84\x5f\x57\x8c\x76"
+			  "\x3e\x05\xc0\xc3\x68\x96\x95\x0b"
+			  "\x88\x97\xfe\x2e\x99\xd5\xc2\xb9"
+			  "\x53\x9f\xf3\x32\x10\x1f\x1f\x5d"
+			  "\xdf\x21\x95\x70\x91\xe8\xa1\x3e"
+			  "\x19\x3e\xb6\x0b\xa8\xdb\xf8\xd4"
+			  "\x54\x27\xb8\xab\x5d\x78\x0c\xe6"
+			  "\xb7\x08\xee\xa4\xb6\x6b\xeb\x5a"
+			  "\x89\x69\x2b\xbd\xd4\x21\x5b\xbf"
+			  "\x79\xbb\x0f\xff\xdb\x23\x9a\xeb"
+			  "\x8d\xf2\xc4\x39\xb4\x90\x77\x6f"
+			  "\x68\xe2\xb8\xf3\xf1\x65\x4f\xd5"
+			  "\x24\x80\x06\xaf\x7c\x8d\x15\x0c"
+			  "\xfd\x56\xe5\xe3\x01\xa5\xf7\x1c"
+			  "\x31\xd6\xa2\x01\x1e\x59\xf9\xa9"
+			  "\x42\xd5\xc2\x34\xda\x25\xde\xc6"
+			  "\x5d\x38\xef\xd1\x4c\xc1\xd9\x1b"
+			  "\x98\xfd\xcd\x57\x6f\xfd\x46\x91"
+			  "\x90\x3d\x52\x2b\x2c\x7d\xcf\x71"
+			  "\xcf\xd1\x77\x23\x71\x36\xb1\xce"
+			  "\xc7\x5d\xf0\x5b\x44\x3d\x43\x71"
+			  "\xac\xb8\xa0\x6a\xea\x89\x5c\xff"
+			  "\x81\x73\xd4\x83\xd1\xc9\xe9\xe2"
+			  "\xa8\xa6\x0f\x36\xe6\xaa\x57\xd4"
+			  "\x27\xd2\xc9\xda\x94\x02\x1f\xfb"
+			  "\xe1\xa1\x07\xbe\xe1\x1b\x15\x94"
+			  "\x1e\xac\x2f\x57\xbb\x41\x22\xaf"
+			  "\x60\x5e\xcc\x66\xcb\x16\x62\xab"
+			  "\xb8\x7c\x99\xf4\x84\x93\x0c\xc2"
+			  "\xa2\x49\xe4\xfd\x17\x55\xe1\xa6"
+			  "\x8d\x5b\xc6\x1b\xc8\xac\xec\x11"
+			  "\x33\xcf\xb0\xe8\xc7\x28\x4f\xb2"
+			  "\x5c\xa6\xe2\x71\xab\x80\x0a\xa7"
+			  "\x5c\x59\x50\x9f\x7a\x32\xb7\xe5"
+			  "\x24\x9a\x8e\x25\x21\x2e\xb7\x18"
+			  "\xd0\xf2\xe7\x27\x6f\xda\xc1\x00"
+			  "\xd9\xa6\x03\x59\xac\x4b\xcb\xba",
+		.klen	= 24,
+		.len	= 512,
+	},
+	{
+		.key	= "\x9e\xeb\xb2\x49\x3c\x1c\xf5\xf4"
+			  "\x6a\x99\xc2\xc4\xdf\xb1\xf4\xdd"
+			  "\x75\x20\x57\xea\x2c\x4f\xcd\xb2"
+			  "\xa5\x3d\x7b\x49\x1e\xab\xfd\x0f",
+		.iv	= "\xdf\x63\xd4\xab\xd2\x49\xf3\xd8"
+			  "\x33\x81\x37\x60\x7d\xfa\x73\x08"
+			  "\xd8\x49\x6d\x80\xe8\x2f\x62\x54"
+			  "\xeb\x0e\xa9\x39\x5b\x45\x7f\x8a",
+		.ptext	= "\x67\xc9\xf2\x30\x84\x41\x8e\x43"
+			  "\xfb\xf3\xb3\x3e\x79\x36\x7f\xe8",
+		.ctext	= "\x27\x38\x78\x47\x16\xd9\x71\x35"
+			  "\x2e\x7e\xdd\x7e\x43\x3c\xb8\x40",
+		.klen	= 32,
+		.len	= 16,
+	},
+	{
+		.key	= "\x93\xfa\x7e\xe2\x0e\x67\xc4\x39"
+			  "\xe7\xca\x47\x95\x68\x9d\x5e\x5a"
+			  "\x7c\x26\x19\xab\xc6\xca\x6a\x4c"
+			  "\x45\xa6\x96\x42\xae\x6c\xff\xe7",
+		.iv	= "\xea\x82\x47\x95\x3b\x22\xa1\x3a"
+			  "\x6a\xca\x24\x4c\x50\x7e\x23\xcd"
+			  "\x0e\x50\xe5\x41\xb6\x65\x29\xd8"
+			  "\x30\x23\x00\xd2\x54\xa7\xd6\x56",
+		.ptext	= "\xdb\x1f\x1f\xec\xad\x83\x6e\x5d"
+			  "\x19\xa5\xf6\x3b\xb4\x93\x5a\x57"
+			  "\x6f",
+		.ctext	= "\xf1\x46\x6e\x9d\xb3\x01\xf0\x6b"
+			  "\xc2\xac\x57\x88\x48\x6d\x40\x72"
+			  "\x68",
+		.klen	= 32,
+		.len	= 17,
+	},
+	{
+		.key	= "\x36\x2b\x57\x97\xf8\x5d\xcd\x99"
+			  "\x5f\x1a\x5a\x44\x1d\x92\x0f\x27"
+			  "\xcc\x16\xd7\x2b\x85\x63\x99\xd3"
+			  "\xba\x96\xa1\xdb\xd2\x60\x68\xda",
+		.iv	= "\xef\x58\x69\xb1\x2c\x5e\x9a\x47"
+			  "\x24\xc1\xb1\x69\xe1\x12\x93\x8f"
+			  "\x43\x3d\x6d\x00\xdb\x5e\xd8\xd9"
+			  "\x12\x9a\xfe\xd9\xff\x2d\xaa\xc4",
+		.ptext	= "\x5e\xa8\x68\x19\x85\x98\x12\x23"
+			  "\x26\x0a\xcc\xdb\x0a\x04\xb9\xdf"
+			  "\x4d\xb3\x48\x7b\xb0\xe3\xc8\x19"
+			  "\x43\x5a\x46\x06\x94\x2d\xf2",
+		.ctext	= "\xdb\xfd\xc8\x03\xd0\xec\xc1\xfe"
+			  "\xbd\x64\x37\xb8\x82\x43\x62\x4e"
+			  "\x7e\x54\xa3\xe2\x24\xa7\x27\xe8"
+			  "\xa4\xd5\xb3\x6c\xb2\x26\xb4",
+		.klen	= 32,
+		.len	= 31,
+	},
+	{
+		.key	= "\x03\x65\x03\x6e\x4d\xe6\xe8\x4e"
+			  "\x8b\xbe\x22\x19\x48\x31\xee\xd9"
+			  "\xa0\x91\x21\xbe\x62\x89\xde\x78"
+			  "\xd9\xb0\x36\xa3\x3c\xce\x43\xd5",
+		.iv	= "\xa9\xc3\x4b\xe7\x0f\xfc\x6d\xbf"
+			  "\x56\x27\x21\x1c\xfc\xd6\x04\x10"
+			  "\x5f\x43\xe2\x30\x35\x29\x6c\x10"
+			  "\x90\xf1\xbf\x61\xed\x0f\x8a\x91",
+		.ptext	= "\x07\xaa\x02\x26\xb4\x98\x11\x5e"
+			  "\x33\x41\x21\x51\x51\x63\x2c\x72"
+			  "\x00\xab\x32\xa7\x1c\xc8\x3c\x9c"
+			  "\x25\x0e\x8b\x9a\xdf\x85\xed\x2d"
+			  "\xf4\xf2\xbc\x55\xca\x92\x6d\x22"
+			  "\xfd\x22\x3b\x42\x4c\x0b\x74\xec",
+		.ctext	= "\x7b\xb1\x43\x6d\xd8\x72\x6c\xf6"
+			  "\x67\x6a\x00\xc4\xf1\xf0\xf5\xa4"
+			  "\xfc\x60\x91\xab\x46\x0b\x15\xfc"
+			  "\xd7\xc1\x28\x15\xa1\xfc\xf7\x68"
+			  "\x8e\xcc\x27\x62\x00\x64\x56\x72"
+			  "\xa6\x17\xd7\x3f\x67\x80\x10\x58",
+		.klen	= 32,
+		.len	= 48,
+	},
+	{
+		.key	= "\xa5\x28\x24\x34\x1a\x3c\xd8\xf7"
+			  "\x05\x91\x8f\xee\x85\x1f\x35\x7f"
+			  "\x80\x3d\xfc\x9b\x94\xf6\xfc\x9e"
+			  "\x19\x09\x00\xa9\x04\x31\x4f\x11",
+		.iv	= "\xa1\xba\x49\x95\xff\x34\x6d\xb8"
+			  "\xcd\x87\x5d\x5e\xfd\xea\x85\xdb"
+			  "\x8a\x7b\x5e\xb2\x5d\x57\xdd\x62"
+			  "\xac\xa9\x8c\x41\x42\x94\x75\xb7",
+		.ptext	= "\x69\xb4\xe8\x8c\x37\xe8\x67\x82"
+			  "\xf1\xec\x5d\x04\xe5\x14\x91\x13"
+			  "\xdf\xf2\x87\x1b\x69\x81\x1d\x71"
+			  "\x70\x9e\x9c\x3b\xde\x49\x70\x11"
+			  "\xa0\xa3\xdb\x0d\x54\x4f\x66\x69"
+			  "\xd7\xdb\x80\xa7\x70\x92\x68\xce"
+			  "\x81\x04\x2c\xc6\xab\xae\xe5\x60"
+			  "\x15\xe9\x6f\xef\xaa\x8f\xa7\xa7"
+			  "\x63\x8f\xf2\xf0\x77\xf1\xa8\xea"
+			  "\xe1\xb7\x1f\x9e\xab\x9e\x4b\x3f"
+			  "\x07\x87\x5b\x6f\xcd\xa8\xaf\xb9"
+			  "\xfa\x70\x0b\x52\xb8\xa8\xa7\x9e"
+			  "\x07\x5f\xa6\x0e\xb3\x9b\x79\x13"
+			  "\x79\xc3\x3e\x8d\x1c\x2c\x68\xc8"
+			  "\x51\x1d\x3c\x7b\x7d\x79\x77\x2a"
+			  "\x56\x65\xc5\x54\x23\x28\xb0\x03",
+		.ctext	= "\xeb\xf9\x98\x86\x3c\x40\x9f\x16"
+			  "\x84\x01\xf9\x06\x0f\xeb\x3c\xa9"
+			  "\x4c\xa4\x8e\x5d\xc3\x8d\xe5\xd3"
+			  "\xae\xa6\xe6\xcc\xd6\x2d\x37\x4f"
+			  "\x99\xc8\xa3\x21\x46\xb8\x69\xf2"
+			  "\xe3\x14\x89\xd7\xb9\xf5\x9e\x4e"
+			  "\x07\x93\x6f\x78\x8e\x6b\xea\x8f"
+			  "\xfb\x43\xb8\x3e\x9b\x4c\x1d\x7e"
+			  "\x20\x9a\xc5\x87\xee\xaf\xf6\xf9"
+			  "\x46\xc5\x18\x8a\xe8\x69\xe7\x96"
+			  "\x52\x55\x5f\x00\x1e\x1a\xdc\xcc"
+			  "\x13\xa5\xee\xff\x4b\x27\xca\xdc"
+			  "\x10\xa6\x48\x76\x98\x43\x94\xa3"
+			  "\xc7\xe2\xc9\x65\x9b\x08\x14\x26"
+			  "\x1d\x68\xfb\x15\x0a\x33\x49\x84"
+			  "\x84\x33\x5a\x1b\x24\x46\x31\x92",
+		.klen	= 32,
+		.len	= 128,
+	},
+	{
+		.key	= "\x36\x45\x11\xa2\x98\x5f\x96\x7c"
+			  "\xc6\xb4\x94\x31\x0a\x67\x09\x32"
+			  "\x6c\x6f\x6f\x00\xf0\x17\xcb\xac"
+			  "\xa5\xa9\x47\x9e\x2e\x85\x2f\xfa",
+		.iv	= "\x28\x88\xaa\x9b\x59\x3b\x1e\x97"
+			  "\x82\xe5\x5c\x9e\x6d\x14\x11\x19"
+			  "\x6e\x38\x8f\xd5\x40\x2b\xca\xf9"
+			  "\x7b\x4c\xe4\xa3\xd0\xd2\x8a\x13",
+		.ptext	= "\x95\xd2\xf7\x71\x1b\xca\xa5\x86"
+			  "\xd9\x48\x01\x93\x2f\x79\x55\x29"
+			  "\x71\x13\x15\x0e\xe6\x12\xbc\x4d"
+			  "\x8a\x31\xe3\x40\x2a\xc6\x5e\x0d"
+			  "\x68\xbb\x4a\x62\x8d\xc7\x45\x77"
+			  "\xd2\xb8\xc7\x1d\xf1\xd2\x5d\x97"
+			  "\xcf\xac\x52\xe5\x32\x77\xb6\xda"
+			  "\x30\x85\xcf\x2b\x98\xe9\xaa\x34"
+			  "\x62\xb5\x23\x9e\xb7\xa6\xd4\xe0"
+			  "\xb4\x58\x18\x8c\x4d\xde\x4d\x01"
+			  "\x83\x89\x24\xca\xfb\x11\xd4\x82"
+			  "\x30\x7a\x81\x35\xa0\xb4\xd4\xb6"
+			  "\x84\xea\x47\x91\x8c\x19\x86\x25"
+			  "\xa6\x06\x8d\x78\xe6\xed\x87\xeb"
+			  "\xda\xea\x73\x7c\xbf\x66\xb8\x72"
+			  "\xe3\x0a\xb8\x0c\xcb\x1a\x73\xf1"
+			  "\xa7\xca\x0a\xde\x57\x2b\xbd\x2b"
+			  "\xeb\x8b\x24\x38\x22\xd3\x0e\x1f"
+			  "\x17\xa0\x84\x98\x31\x77\xfd\x34"
+			  "\x6a\x4e\x3d\x84\x4c\x0e\xfb\xed"
+			  "\xc8\x2a\x51\xfa\xd8\x73\x21\x8a"
+			  "\xdb\xb5\xfe\x1f\xee\xc4\xe8\x65"
+			  "\x54\x84\xdd\x96\x6d\xfd\xd3\x31"
+			  "\x77\x36\x52\x6b\x80\x4f\x9e\xb4"
+			  "\xa2\x55\xbf\x66\x41\x49\x4e\x87"
+			  "\xa7\x0c\xca\xe7\xa5\xc5\xf6\x6f"
+			  "\x27\x56\xe2\x48\x22\xdd\x5f\x59"
+			  "\x3c\xf1\x9f\x83\xe5\x2d\xfb\x71"
+			  "\xad\xd1\xae\x1b\x20\x5c\x47\xb7"
+			  "\x3b\xd3\x14\xce\x81\x42\xb1\x0a"
+			  "\xf0\x49\xfa\xc2\xe7\x86\xbf\xcd"
+			  "\xb0\x95\x9f\x8f\x79\x41\x54",
+		.ctext	= "\xf6\x57\x51\xc4\x25\x61\x2d\xfa"
+			  "\xd6\xd9\x3f\x9a\x81\x51\xdd\x8e"
+			  "\x3d\xe7\xaa\x2d\xb1\xda\xc8\xa6"
+			  "\x9d\xaa\x3c\xab\x62\xf2\x80\xc3"
+			  "\x2c\xe7\x58\x72\x1d\x44\xc5\x28"
+			  "\x7f\xb4\xf9\xbc\x9c\xb2\xab\x8e"
+			  "\xfa\xd1\x4d\x72\xd9\x79\xf5\xa0"
+			  "\x24\x3e\x90\x25\x31\x14\x38\x45"
+			  "\x59\xc8\xf6\xe2\xc6\xf6\xc1\xa7"
+			  "\xb2\xf8\xa7\xa9\x2b\x6f\x12\x3a"
+			  "\xb0\x81\xa4\x08\x57\x59\xb1\x56"
+			  "\x4c\x8f\x18\x55\x33\x5f\xd6\x6a"
+			  "\xc6\xa0\x4b\xd6\x6b\x64\x3e\x9e"
+			  "\xfd\x66\x16\xe2\xdb\xeb\x5f\xb3"
+			  "\x50\x50\x3e\xde\x8d\x72\x76\x01"
+			  "\xbe\xcc\xc9\x52\x09\x2d\x8d\xe7"
+			  "\xd6\xc3\x66\xdb\x36\x08\xd1\x77"
+			  "\xc8\x73\x46\x26\x24\x29\xbf\x68"
+			  "\x2d\x2a\x99\x43\x56\x55\xe4\x93"
+			  "\xaf\xae\x4d\xe7\x55\x4a\xc0\x45"
+			  "\x26\xeb\x3b\x12\x90\x7c\xdc\xd1"
+			  "\xd5\x6f\x0a\xd0\xa9\xd7\x4b\x89"
+			  "\x0b\x07\xd8\x86\xad\xa1\xc4\x69"
+			  "\x1f\x5e\x8b\xc4\x9e\x91\x41\x25"
+			  "\x56\x98\x69\x78\x3a\x9e\xae\x91"
+			  "\xd8\xd9\xfa\xfb\xff\x81\x25\x09"
+			  "\xfc\xed\x2d\x87\xbc\x04\x62\x97"
+			  "\x35\xe1\x26\xc2\x46\x1c\xcf\xd7"
+			  "\x14\xed\x02\x09\xa5\xb2\xb6\xaa"
+			  "\x27\x4e\x61\xb3\x71\x6b\x47\x16"
+			  "\xb7\xe8\xd4\xaf\x52\xeb\x6a\x6b"
+			  "\xdb\x4c\x65\x21\x9e\x1c\x36",
+		.klen	= 32,
+		.len	= 255,
+	},
+	{
+		.key	= "\xd3\x81\x72\x18\x23\xff\x6f\x4a"
+			  "\x25\x74\x29\x0d\x51\x8a\x0e\x13"
+			  "\xc1\x53\x5d\x30\x8d\xee\x75\x0d"
+			  "\x14\xd6\x69\xc9\x15\xa9\x0c\x60",
+		.iv	= "\x65\x9b\xd4\xa8\x7d\x29\x1d\xf4"
+			  "\xc4\xd6\x9b\x6a\x28\xab\x64\xe2"
+			  "\x62\x81\x97\xc5\x81\xaa\xf9\x44"
+			  "\xc1\x72\x59\x82\xaf\x16\xc8\x2c",
+		.ptext	= "\xc7\x6b\x52\x6a\x10\xf0\xcc\x09"
+			  "\xc1\x12\x1d\x6d\x21\xa6\x78\xf5"
+			  "\x05\xa3\x69\x60\x91\x36\x98\x57"
+			  "\xba\x0c\x14\xcc\xf3\x2d\x73\x03"
+			  "\xc6\xb2\x5f\xc8\x16\x27\x37\x5d"
+			  "\xd0\x0b\x87\xb2\x50\x94\x7b\x58"
+			  "\x04\xf4\xe0\x7f\x6e\x57\x8e\xc9"
+			  "\x41\x84\xc1\xb1\x7e\x4b\x91\x12"
+			  "\x3a\x8b\x5d\x50\x82\x7b\xcb\xd9"
+			  "\x9a\xd9\x4e\x18\x06\x23\x9e\xd4"
+			  "\xa5\x20\x98\xef\xb5\xda\xe5\xc0"
+			  "\x8a\x6a\x83\x77\x15\x84\x1e\xae"
+			  "\x78\x94\x9d\xdf\xb7\xd1\xea\x67"
+			  "\xaa\xb0\x14\x15\xfa\x67\x21\x84"
+			  "\xd3\x41\x2a\xce\xba\x4b\x4a\xe8"
+			  "\x95\x62\xa9\x55\xf0\x80\xad\xbd"
+			  "\xab\xaf\xdd\x4f\xa5\x7c\x13\x36"
+			  "\xed\x5e\x4f\x72\xad\x4b\xf1\xd0"
+			  "\x88\x4e\xec\x2c\x88\x10\x5e\xea"
+			  "\x12\xc0\x16\x01\x29\xa3\xa0\x55"
+			  "\xaa\x68\xf3\xe9\x9d\x3b\x0d\x3b"
+			  "\x6d\xec\xf8\xa0\x2d\xf0\x90\x8d"
+			  "\x1c\xe2\x88\xd4\x24\x71\xf9\xb3"
+			  "\xc1\x9f\xc5\xd6\x76\x70\xc5\x2e"
+			  "\x9c\xac\xdb\x90\xbd\x83\x72\xba"
+			  "\x6e\xb5\xa5\x53\x83\xa9\xa5\xbf"
+			  "\x7d\x06\x0e\x3c\x2a\xd2\x04\xb5"
+			  "\x1e\x19\x38\x09\x16\xd2\x82\x1f"
+			  "\x75\x18\x56\xb8\x96\x0b\xa6\xf9"
+			  "\xcf\x62\xd9\x32\x5d\xa9\xd7\x1d"
+			  "\xec\xe4\xdf\x1b\xbe\xf1\x36\xee"
+			  "\xe3\x7b\xb5\x2f\xee\xf8\x53\x3d"
+			  "\x6a\xb7\x70\xa9\xfc\x9c\x57\x25"
+			  "\xf2\x89\x10\xd3\xb8\xa8\x8c\x30"
+			  "\xae\x23\x4f\x0e\x13\x66\x4f\xe1"
+			  "\xb6\xc0\xe4\xf8\xef\x93\xbd\x6e"
+			  "\x15\x85\x6b\xe3\x60\x81\x1d\x68"
+			  "\xd7\x31\x87\x89\x09\xab\xd5\x96"
+			  "\x1d\xf3\x6d\x67\x80\xca\x07\x31"
+			  "\x5d\xa7\xe4\xfb\x3e\xf2\x9b\x33"
+			  "\x52\x18\xc8\x30\xfe\x2d\xca\x1e"
+			  "\x79\x92\x7a\x60\x5c\xb6\x58\x87"
+			  "\xa4\x36\xa2\x67\x92\x8b\xa4\xb7"
+			  "\xf1\x86\xdf\xdc\xc0\x7e\x8f\x63"
+			  "\xd2\xa2\xdc\x78\xeb\x4f\xd8\x96"
+			  "\x47\xca\xb8\x91\xf9\xf7\x94\x21"
+			  "\x5f\x9a\x9f\x5b\xb8\x40\x41\x4b"
+			  "\x66\x69\x6a\x72\xd0\xcb\x70\xb7"
+			  "\x93\xb5\x37\x96\x05\x37\x4f\xe5"
+			  "\x8c\xa7\x5a\x4e\x8b\xb7\x84\xea"
+			  "\xc7\xfc\x19\x6e\x1f\x5a\xa1\xac"
+			  "\x18\x7d\x52\x3b\xb3\x34\x62\x99"
+			  "\xe4\x9e\x31\x04\x3f\xc0\x8d\x84"
+			  "\x17\x7c\x25\x48\x52\x67\x11\x27"
+			  "\x67\xbb\x5a\x85\xca\x56\xb2\x5c"
+			  "\xe6\xec\xd5\x96\x3d\x15\xfc\xfb"
+			  "\x22\x25\xf4\x13\xe5\x93\x4b\x9a"
+			  "\x77\xf1\x52\x18\xfa\x16\x5e\x49"
+			  "\x03\x45\xa8\x08\xfa\xb3\x41\x92"
+			  "\x79\x50\x33\xca\xd0\xd7\x42\x55"
+			  "\xc3\x9a\x0c\x4e\xd9\xa4\x3c\x86"
+			  "\x80\x9f\x53\xd1\xa4\x2e\xd1\xbc"
+			  "\xf1\x54\x6e\x93\xa4\x65\x99\x8e"
+			  "\xdf\x29\xc0\x64\x63\x07\xbb\xea",
+		.ctext	= "\x9f\x72\x87\xc7\x17\xfb\x20\x15"
+			  "\x65\xb3\x55\xa8\x1c\x8e\x52\x32"
+			  "\xb1\x82\x8d\xbf\xb5\x9f\x10\x0a"
+			  "\xe8\x0c\x70\x62\xef\x89\xb6\x1f"
+			  "\x73\xcc\xe4\xcc\x7a\x3a\x75\x4a"
+			  "\x26\xe7\xf5\xd7\x7b\x17\x39\x2d"
+			  "\xd2\x27\x6e\xf9\x2f\x9e\xe2\xf6"
+			  "\xfa\x16\xc2\xf2\x49\x26\xa7\x5b"
+			  "\xe7\xca\x25\x0e\x45\xa0\x34\xc2"
+			  "\x9a\x37\x79\x7e\x7c\x58\x18\x94"
+			  "\x10\xa8\x7c\x48\xa9\xd7\x63\x89"
+			  "\x9e\x61\x4d\x26\x34\xd9\xf0\xb1"
+			  "\x2d\x17\x2c\x6f\x7c\x35\x0e\xbe"
+			  "\x77\x71\x7c\x17\x5b\xab\x70\xdb"
+			  "\x2f\x54\x0f\xa9\xc8\xf4\xf5\xab"
+			  "\x52\x04\x3a\xb8\x03\xa7\xfd\x57"
+			  "\x45\x5e\xbc\x77\xe1\xee\x79\x8c"
+			  "\x58\x7b\x1f\xf7\x75\xde\x68\x17"
+			  "\x98\x85\x8a\x18\x5c\xd2\x39\x78"
+			  "\x7a\x6f\x26\x6e\xe1\x13\x91\xdd"
+			  "\xdf\x0e\x6e\x67\xcc\x51\x53\xd8"
+			  "\x17\x5e\xce\xa7\xe4\xaf\xfa\xf3"
+			  "\x4f\x9f\x01\x9b\x04\xe7\xfc\xf9"
+			  "\x6a\xdc\x1d\x0c\x9a\xaa\x3a\x7a"
+			  "\x73\x03\xdf\xbf\x3b\x82\xbe\xb0"
+			  "\xb4\xa4\xcf\x07\xd7\xde\x71\x25"
+			  "\xc5\x10\xee\x0a\x15\x96\x8b\x4f"
+			  "\xfe\xb8\x28\xbd\x4a\xcd\xeb\x9f"
+			  "\x5d\x00\xc1\xee\xe8\x16\x44\xec"
+			  "\xe9\x7b\xd6\x85\x17\x29\xcf\x58"
+			  "\x20\xab\xf7\xce\x6b\xe7\x71\x7d"
+			  "\x4f\xa8\xb0\xe9\x7d\x70\xd6\x0b"
+			  "\x2e\x20\xb1\x1a\x63\x37\xaa\x2c"
+			  "\x94\xee\xd5\xf6\x58\x2a\xf4\x7a"
+			  "\x4c\xba\xf5\xe9\x3c\x6f\x95\x13"
+			  "\x5f\x96\x81\x5b\xb5\x62\xf2\xd7"
+			  "\x8d\xbe\xa1\x31\x51\xe6\xfe\xc9"
+			  "\x07\x7d\x0f\x00\x3a\x66\x8c\x4b"
+			  "\x94\xaa\xe5\x56\xde\xcd\x74\xa7"
+			  "\x48\x67\x6f\xed\xc9\x6a\xef\xaf"
+			  "\x9a\xb7\xae\x60\xfa\xc0\x37\x39"
+			  "\xa5\x25\xe5\x22\xea\x82\x55\x68"
+			  "\x3e\x30\xc3\x5a\xb6\x29\x73\x7a"
+			  "\xb6\xfb\x34\xee\x51\x7c\x54\xe5"
+			  "\x01\x4d\x72\x25\x32\x4a\xa3\x68"
+			  "\x80\x9a\x89\xc5\x11\x66\x4c\x8c"
+			  "\x44\x50\xbe\xd7\xa0\xee\xa6\xbb"
+			  "\x92\x0c\xe6\xd7\x83\x51\xb1\x69"
+			  "\x63\x40\xf3\xf4\x92\x84\xc4\x38"
+			  "\x29\xfb\xb4\x84\xa0\x19\x75\x16"
+			  "\x60\xbf\x0a\x9c\x89\xee\xad\xb4"
+			  "\x43\xf9\x71\x39\x45\x7c\x24\x83"
+			  "\x30\xbb\xee\x28\xb0\x86\x7b\xec"
+			  "\x93\xc1\xbf\xb9\x97\x1b\x96\xef"
+			  "\xee\x58\x35\x61\x12\x19\xda\x25"
+			  "\x77\xe5\x80\x1a\x31\x27\x9b\xe4"
+			  "\xda\x8b\x7e\x51\x4d\xcb\x01\x19"
+			  "\x4f\xdc\x92\x1a\x17\xd5\x6b\xf4"
+			  "\x50\xe3\x06\xe4\x76\x9f\x65\x00"
+			  "\xbd\x7a\xe2\x64\x26\xf2\xe4\x7e"
+			  "\x40\xf2\x80\xab\x62\xd5\xef\x23"
+			  "\x8b\xfb\x6f\x24\x6e\x9b\x66\x0e"
+			  "\xf4\x1c\x24\x1e\x1d\x26\x95\x09"
+			  "\x94\x3c\xb2\xb6\x02\xa7\xd9\x9a",
+		.klen	= 32,
+		.len	= 512,
+	},
+
+};
+
 #endif	/* _CRYPTO_TESTMGR_H */
diff --git a/drivers/android/binder.c b/drivers/android/binder.c
index 5bf334e..a5ec6b9 100644
--- a/drivers/android/binder.c
+++ b/drivers/android/binder.c
@@ -3049,11 +3049,11 @@
 	int t_debug_id = atomic_inc_return(&binder_last_id);
 	char *secctx = NULL;
 	u32 secctx_sz = 0;
+	bool is_nested = false;
 	struct list_head sgc_head;
 	struct list_head pf_head;
 	const void __user *user_buffer = (const void __user *)
 				(uintptr_t)tr->data.ptr.buffer;
-	bool is_nested = false;
 
 	INIT_LIST_HEAD(&sgc_head);
 	INIT_LIST_HEAD(&pf_head);
@@ -3253,7 +3253,6 @@
 	if (target_thread)
 		e->to_thread = target_thread->pid;
 	e->to_proc = target_proc->pid;
-	trace_android_rvh_binder_transaction(target_proc, proc, thread, tr);
 
 	/* TODO: reuse incoming transaction for reply */
 	t = kzalloc(sizeof(*t), GFP_KERNEL);
diff --git a/drivers/android/vendor_hooks.c b/drivers/android/vendor_hooks.c
index ef49565..fd718ab 100644
--- a/drivers/android/vendor_hooks.c
+++ b/drivers/android/vendor_hooks.c
@@ -109,6 +109,7 @@
 #include <trace/hooks/dm.h>
 #include <trace/hooks/direct_io.h>
 #include <trace/hooks/loop.h>
+#include <trace/hooks/psi.h>
 /*
  * Export tracepoints that act as a bare tracehook (ie: have no trace event
  * associated with them) to allow external modules to probe them.
@@ -141,10 +142,16 @@
 EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_killed_process);
 EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rtmutex_wait_start);
 EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rtmutex_wait_finish);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mutex_opt_spin_start);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mutex_opt_spin_finish);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mutex_can_spin_on_owner);
 EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rwsem_read_wait_start);
 EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rwsem_read_wait_finish);
 EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rwsem_write_wait_start);
 EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rwsem_write_wait_finish);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rwsem_opt_spin_start);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rwsem_opt_spin_finish);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rwsem_can_spin_on_owner);
 EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_sched_show_task);
 EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_cpu_idle_enter);
 EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_cpu_idle_exit);
@@ -227,7 +234,6 @@
 EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_cpuidle_psci_exit);
 EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_cgroup_force_kthread_migration);
 EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_wait_for_work);
-EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_binder_transaction);
 EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_proc_transaction_entry);
 EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_select_worklist_ilocked);
 EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_proc_transaction_finish);
@@ -307,6 +313,7 @@
 EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rproc_recovery_set);
 EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_disable_thermal_cooling_stats);
 EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_enable_thermal_power_throttle);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_modify_thermal_throttle_update);
 EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rwsem_init);
 EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rwsem_wake);
 EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rwsem_write_finished);
@@ -417,6 +424,8 @@
 EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_ctl_dirty_rate);
 EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_direct_io_update_bio);
 EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_loop_prepare_cmd);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_psi_event);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_psi_group);
 /*
  * For type visibility
  */
diff --git a/drivers/base/regmap/regcache.c b/drivers/base/regmap/regcache.c
index f2469d3..c4e03b4 100644
--- a/drivers/base/regmap/regcache.c
+++ b/drivers/base/regmap/regcache.c
@@ -495,7 +495,8 @@
 void regcache_cache_only(struct regmap *map, bool enable)
 {
 	map->lock(map->lock_arg);
-	WARN_ON(map->cache_bypass && enable);
+	WARN_ON(map->cache_type != REGCACHE_NONE &&
+		map->cache_bypass && enable);
 	map->cache_only = enable;
 	trace_regmap_cache_only(map, enable);
 	map->unlock(map->lock_arg);
diff --git a/drivers/block/loop.c b/drivers/block/loop.c
index bcc18de..28d81e7 100644
--- a/drivers/block/loop.c
+++ b/drivers/block/loop.c
@@ -2191,35 +2191,44 @@
 
 static void loop_handle_cmd(struct loop_cmd *cmd)
 {
+	struct cgroup_subsys_state *cmd_blkcg_css = cmd->blkcg_css;
+	struct cgroup_subsys_state *cmd_memcg_css = cmd->memcg_css;
 	struct request *rq = blk_mq_rq_from_pdu(cmd);
 	const bool write = op_is_write(req_op(rq));
 	struct loop_device *lo = rq->q->queuedata;
 	int ret = 0;
 	struct mem_cgroup *old_memcg = NULL;
+	const bool use_aio = cmd->use_aio;
 
 	if (write && (lo->lo_flags & LO_FLAGS_READ_ONLY)) {
 		ret = -EIO;
 		goto failed;
 	}
 
-	if (cmd->blkcg_css)
-		kthread_associate_blkcg(cmd->blkcg_css);
-	if (cmd->memcg_css)
+	if (cmd_blkcg_css)
+		kthread_associate_blkcg(cmd_blkcg_css);
+	if (cmd_memcg_css)
 		old_memcg = set_active_memcg(
-			mem_cgroup_from_css(cmd->memcg_css));
+			mem_cgroup_from_css(cmd_memcg_css));
 
+	/*
+	 * do_req_filebacked() may call blk_mq_complete_request() synchronously
+	 * or asynchronously if using aio. Hence, do not touch 'cmd' after
+	 * do_req_filebacked() has returned unless we are sure that 'cmd' has
+	 * not yet been completed.
+	 */
 	ret = do_req_filebacked(lo, rq);
 
-	if (cmd->blkcg_css)
+	if (cmd_blkcg_css)
 		kthread_associate_blkcg(NULL);
 
-	if (cmd->memcg_css) {
+	if (cmd_memcg_css) {
 		set_active_memcg(old_memcg);
-		css_put(cmd->memcg_css);
+		css_put(cmd_memcg_css);
 	}
  failed:
 	/* complete non-aio request */
-	if (!cmd->use_aio || ret) {
+	if (!use_aio || ret) {
 		if (ret == -EOPNOTSUPP)
 			cmd->ret = ret;
 		else
diff --git a/drivers/char/hw_random/virtio-rng.c b/drivers/char/hw_random/virtio-rng.c
index a90001e..208c547 100644
--- a/drivers/char/hw_random/virtio-rng.c
+++ b/drivers/char/hw_random/virtio-rng.c
@@ -18,13 +18,20 @@
 struct virtrng_info {
 	struct hwrng hwrng;
 	struct virtqueue *vq;
-	struct completion have_data;
 	char name[25];
-	unsigned int data_avail;
 	int index;
 	bool busy;
 	bool hwrng_register_done;
 	bool hwrng_removed;
+	/* data transfer */
+	struct completion have_data;
+	unsigned int data_avail;
+	/* minimal size returned by rng_buffer_size() */
+#if SMP_CACHE_BYTES < 32
+	u8 data[32];
+#else
+	u8 data[SMP_CACHE_BYTES];
+#endif
 };
 
 static void random_recv_done(struct virtqueue *vq)
@@ -39,14 +46,14 @@
 }
 
 /* The host will fill any buffer we give it with sweet, sweet randomness. */
-static void register_buffer(struct virtrng_info *vi, u8 *buf, size_t size)
+static void register_buffer(struct virtrng_info *vi)
 {
 	struct scatterlist sg;
 
-	sg_init_one(&sg, buf, size);
+	sg_init_one(&sg, vi->data, sizeof(vi->data));
 
 	/* There should always be room for one buffer. */
-	virtqueue_add_inbuf(vi->vq, &sg, 1, buf, GFP_KERNEL);
+	virtqueue_add_inbuf(vi->vq, &sg, 1, vi->data, GFP_KERNEL);
 
 	virtqueue_kick(vi->vq);
 }
@@ -55,6 +62,8 @@
 {
 	int ret;
 	struct virtrng_info *vi = (struct virtrng_info *)rng->priv;
+	unsigned int chunk;
+	size_t read;
 
 	if (vi->hwrng_removed)
 		return -ENODEV;
@@ -62,19 +71,33 @@
 	if (!vi->busy) {
 		vi->busy = true;
 		reinit_completion(&vi->have_data);
-		register_buffer(vi, buf, size);
+		register_buffer(vi);
 	}
 
 	if (!wait)
 		return 0;
 
-	ret = wait_for_completion_killable(&vi->have_data);
-	if (ret < 0)
-		return ret;
+	read = 0;
+	while (size != 0) {
+		ret = wait_for_completion_killable(&vi->have_data);
+		if (ret < 0)
+			return ret;
+
+		chunk = min_t(unsigned int, size, vi->data_avail);
+		memcpy(buf + read, vi->data, chunk);
+		read += chunk;
+		size -= chunk;
+		vi->data_avail = 0;
+
+		if (size != 0) {
+			reinit_completion(&vi->have_data);
+			register_buffer(vi);
+		}
+	}
 
 	vi->busy = false;
 
-	return vi->data_avail;
+	return read;
 }
 
 static void virtio_cleanup(struct hwrng *rng)
diff --git a/drivers/cpuidle/cpuidle-psci.c b/drivers/cpuidle/cpuidle-psci.c
index 85e66d9..cfefef7 100644
--- a/drivers/cpuidle/cpuidle-psci.c
+++ b/drivers/cpuidle/cpuidle-psci.c
@@ -69,10 +69,12 @@
 	if (ret)
 		return -1;
 
-	trace_android_vh_cpuidle_psci_enter(dev, s2idle);
 
 	/* Do runtime PM to manage a hierarchical CPU toplogy. */
 	rcu_irq_enter_irqson();
+
+	trace_android_vh_cpuidle_psci_enter(dev, s2idle);
+
 	if (s2idle)
 		dev_pm_genpd_suspend(pd_dev);
 	else
@@ -90,10 +92,11 @@
 		dev_pm_genpd_resume(pd_dev);
 	else
 		pm_runtime_get_sync(pd_dev);
-	rcu_irq_exit_irqson();
 
 	trace_android_vh_cpuidle_psci_exit(dev, s2idle);
 
+	rcu_irq_exit_irqson();
+
 	cpu_pm_exit();
 
 	/* Clear the domain state to start fresh when back from idle. */
diff --git a/drivers/dma-buf/heaps/system_heap.c b/drivers/dma-buf/heaps/system_heap.c
index af4e6fa..3971676a 100644
--- a/drivers/dma-buf/heaps/system_heap.c
+++ b/drivers/dma-buf/heaps/system_heap.c
@@ -318,9 +318,9 @@
 
 	for_each_sgtable_page(sgt, &piter, 0) {
 		p = sg_page_iter_page(&piter);
-		vaddr = kmap_atomic(p);
+		vaddr = kmap_local_page(p);
 		memset(vaddr, 0, PAGE_SIZE);
-		kunmap_atomic(vaddr);
+		kunmap_local(vaddr);
 	}
 
 	return ret;
diff --git a/drivers/hid/hid-input.c b/drivers/hid/hid-input.c
index f197aed..96672c1 100644
--- a/drivers/hid/hid-input.c
+++ b/drivers/hid/hid-input.c
@@ -1119,6 +1119,16 @@
 			return;
 		}
 		goto unknown;
+	case HID_UP_CAMERA:
+		switch (usage->hid & HID_USAGE) {
+		case 0x020:
+			map_key_clear(KEY_CAMERA_FOCUS);	break;
+		case 0x021:
+			map_key_clear(KEY_CAMERA);		break;
+		default:
+			goto ignore;
+		}
+		break;
 
 	case HID_UP_HPVENDOR:	/* Reported on a Dutch layout HP5308 */
 		set_bit(EV_REP, input->evbit);
diff --git a/drivers/iommu/iommu.c b/drivers/iommu/iommu.c
index 7cb3f40..6e8249d 100644
--- a/drivers/iommu/iommu.c
+++ b/drivers/iommu/iommu.c
@@ -221,13 +221,23 @@
 	const struct iommu_ops *ops = dev->bus->iommu_ops;
 	struct iommu_device *iommu_dev;
 	struct iommu_group *group;
+	static DEFINE_MUTEX(iommu_probe_device_lock);
 	int ret;
 
 	if (!ops)
 		return -ENODEV;
-
-	if (!dev_iommu_get(dev))
-		return -ENOMEM;
+	/*
+	 * Serialise to avoid races between IOMMU drivers registering in
+	 * parallel and/or the "replay" calls from ACPI/OF code via client
+	 * driver probe. Once the latter have been cleaned up we should
+	 * probably be able to use device_lock() here to minimise the scope,
+	 * but for now enforcing a simple global ordering is fine.
+	 */
+	mutex_lock(&iommu_probe_device_lock);
+	if (!dev_iommu_get(dev)) {
+		ret = -ENOMEM;
+		goto err_unlock;
+	}
 
 	if (!try_module_get(ops->owner)) {
 		ret = -EINVAL;
@@ -247,11 +257,14 @@
 		ret = PTR_ERR(group);
 		goto out_release;
 	}
-	iommu_group_put(group);
 
+	mutex_lock(&group->mutex);
 	if (group_list && !group->default_domain && list_empty(&group->entry))
 		list_add_tail(&group->entry, group_list);
+	mutex_unlock(&group->mutex);
+	iommu_group_put(group);
 
+	mutex_unlock(&iommu_probe_device_lock);
 	iommu_device_link(iommu_dev, dev);
 
 	return 0;
@@ -265,6 +278,9 @@
 err_free:
 	dev_iommu_free(dev);
 
+err_unlock:
+	mutex_unlock(&iommu_probe_device_lock);
+
 	return ret;
 }
 
@@ -1807,11 +1823,11 @@
 		return ret;
 
 	list_for_each_entry_safe(group, next, &group_list, entry) {
+		mutex_lock(&group->mutex);
+
 		/* Remove item from the list */
 		list_del_init(&group->entry);
 
-		mutex_lock(&group->mutex);
-
 		/* Try to allocate default domain */
 		probe_alloc_default_domain(bus, group);
 
diff --git a/drivers/md/Kconfig b/drivers/md/Kconfig
index 54702af..0ced36a 100644
--- a/drivers/md/Kconfig
+++ b/drivers/md/Kconfig
@@ -663,14 +663,17 @@
 
 	  If unsure, say N.
 
-config DM_AUDIT
-	bool "DM audit events"
-	depends on AUDIT
+config DM_BOW
+	tristate "Backup block device"
+	depends on BLK_DEV_DM
+	select DM_BUFIO
 	help
-	  Generate audit events for device-mapper.
+	  This device-mapper target takes a device and keeps a log of all
+	  changes using free blocks identified by issuing a trim command.
+	  This can then be restored by running a command line utility,
+	  or committed by simply replacing the target.
 
-	  Enables audit logging of several security relevant events in the
-	  particular device-mapper targets, especially the integrity target.
+	  If unsure, say N.
 
 config DM_USER
 	tristate "Block device in userspace"
diff --git a/drivers/md/Makefile b/drivers/md/Makefile
index 762660a..7890bcc 100644
--- a/drivers/md/Makefile
+++ b/drivers/md/Makefile
@@ -84,6 +84,7 @@
 obj-$(CONFIG_DM_INTEGRITY)	+= dm-integrity.o
 obj-$(CONFIG_DM_ZONED)		+= dm-zoned.o
 obj-$(CONFIG_DM_WRITECACHE)	+= dm-writecache.o
+obj-$(CONFIG_DM_BOW)		+= dm-bow.o
 obj-$(CONFIG_DM_USER)		+= dm-user.o
 
 ifeq ($(CONFIG_DM_INIT),y)
diff --git a/drivers/md/dm-bow.c b/drivers/md/dm-bow.c
new file mode 100644
index 0000000..70d56ad
--- /dev/null
+++ b/drivers/md/dm-bow.c
@@ -0,0 +1,1309 @@
+/*
+ * Copyright (C) 2018 Google Limited.
+ *
+ * This file is released under the GPL.
+ */
+
+#include "dm.h"
+#include "dm-core.h"
+
+#include <linux/crc32.h>
+#include <linux/dm-bufio.h>
+#include <linux/module.h>
+
+#define DM_MSG_PREFIX "bow"
+
+struct log_entry {
+	u64 source;
+	u64 dest;
+	u32 size;
+	u32 checksum;
+} __packed;
+
+struct log_sector {
+	u32 magic;
+	u16 header_version;
+	u16 header_size;
+	u32 block_size;
+	u32 count;
+	u32 sequence;
+	sector_t sector0;
+	struct log_entry entries[];
+} __packed;
+
+/*
+ * MAGIC is BOW in ascii
+ */
+#define MAGIC 0x00574f42
+#define HEADER_VERSION 0x0100
+
+/*
+ * A sorted set of ranges representing the state of the data on the device.
+ * Use an rb_tree for fast lookup of a given sector
+ * Consecutive ranges are always of different type - operations on this
+ * set must merge matching consecutive ranges.
+ *
+ * Top range is always of type TOP
+ */
+struct bow_range {
+	struct rb_node		node;
+	sector_t		sector;
+	enum {
+		INVALID,	/* Type not set */
+		SECTOR0,	/* First sector - holds log record */
+		SECTOR0_CURRENT,/* Live contents of sector0 */
+		UNCHANGED,	/* Original contents */
+		TRIMMED,	/* Range has been trimmed */
+		CHANGED,	/* Range has been changed */
+		BACKUP,		/* Range is being used as a backup */
+		TOP,		/* Final range - sector is size of device */
+	} type;
+	struct list_head	trimmed_list; /* list of TRIMMED ranges */
+};
+
+static const char * const readable_type[] = {
+	"Invalid",
+	"Sector0",
+	"Sector0_current",
+	"Unchanged",
+	"Free",
+	"Changed",
+	"Backup",
+	"Top",
+};
+
+enum state {
+	TRIM,
+	CHECKPOINT,
+	COMMITTED,
+};
+
+struct bow_context {
+	struct dm_dev *dev;
+	u32 block_size;
+	u32 block_shift;
+	struct workqueue_struct *workqueue;
+	struct dm_bufio_client *bufio;
+	struct mutex ranges_lock; /* Hold to access this struct and/or ranges */
+	struct rb_root ranges;
+	struct dm_kobject_holder kobj_holder;	/* for sysfs attributes */
+	atomic_t state; /* One of the enum state values above */
+	u64 trims_total;
+	struct log_sector *log_sector;
+	struct list_head trimmed_list;
+	bool forward_trims;
+};
+
+sector_t range_top(struct bow_range *br)
+{
+	return container_of(rb_next(&br->node), struct bow_range, node)
+		->sector;
+}
+
+u64 range_size(struct bow_range *br)
+{
+	return (range_top(br) - br->sector) * SECTOR_SIZE;
+}
+
+static sector_t bvec_top(struct bvec_iter *bi_iter)
+{
+	return bi_iter->bi_sector + bi_iter->bi_size / SECTOR_SIZE;
+}
+
+/*
+ * Find the first range that overlaps with bi_iter
+ * bi_iter is set to the size of the overlapping sub-range
+ */
+static struct bow_range *find_first_overlapping_range(struct rb_root *ranges,
+						      struct bvec_iter *bi_iter)
+{
+	struct rb_node *node = ranges->rb_node;
+	struct bow_range *br;
+
+	while (node) {
+		br = container_of(node, struct bow_range, node);
+
+		if (br->sector <= bi_iter->bi_sector
+		    && bi_iter->bi_sector < range_top(br))
+			break;
+
+		if (bi_iter->bi_sector < br->sector)
+			node = node->rb_left;
+		else
+			node = node->rb_right;
+	}
+
+	WARN_ON(!node);
+	if (!node)
+		return NULL;
+
+	if (range_top(br) - bi_iter->bi_sector
+	    < bi_iter->bi_size >> SECTOR_SHIFT)
+		bi_iter->bi_size = (range_top(br) - bi_iter->bi_sector)
+			<< SECTOR_SHIFT;
+
+	return br;
+}
+
+void add_before(struct rb_root *ranges, struct bow_range *new_br,
+		struct bow_range *existing)
+{
+	struct rb_node *parent = &(existing->node);
+	struct rb_node **link = &(parent->rb_left);
+
+	while (*link) {
+		parent = *link;
+		link = &((*link)->rb_right);
+	}
+
+	rb_link_node(&new_br->node, parent, link);
+	rb_insert_color(&new_br->node, ranges);
+}
+
+/*
+ * Given a range br returned by find_first_overlapping_range, split br into a
+ * leading range, a range matching the bi_iter and a trailing range.
+ * Leading and trailing may end up size 0 and will then be deleted. The
+ * new range matching the bi_iter is then returned and should have its type
+ * and type specific fields populated.
+ * If bi_iter runs off the end of the range, bi_iter is truncated accordingly
+ */
+static int split_range(struct bow_context *bc, struct bow_range **br,
+		       struct bvec_iter *bi_iter)
+{
+	struct bow_range *new_br;
+
+	if (bi_iter->bi_sector < (*br)->sector) {
+		WARN_ON(true);
+		return BLK_STS_IOERR;
+	}
+
+	if (bi_iter->bi_sector > (*br)->sector) {
+		struct bow_range *leading_br =
+			kzalloc(sizeof(*leading_br), GFP_KERNEL);
+
+		if (!leading_br)
+			return BLK_STS_RESOURCE;
+
+		*leading_br = **br;
+		if (leading_br->type == TRIMMED)
+			list_add(&leading_br->trimmed_list, &bc->trimmed_list);
+
+		add_before(&bc->ranges, leading_br, *br);
+		(*br)->sector = bi_iter->bi_sector;
+	}
+
+	if (bvec_top(bi_iter) >= range_top(*br)) {
+		bi_iter->bi_size = (range_top(*br) - (*br)->sector)
+					* SECTOR_SIZE;
+		return BLK_STS_OK;
+	}
+
+	/* new_br will be the beginning, existing br will be the tail */
+	new_br = kzalloc(sizeof(*new_br), GFP_KERNEL);
+	if (!new_br)
+		return BLK_STS_RESOURCE;
+
+	new_br->sector = (*br)->sector;
+	(*br)->sector = bvec_top(bi_iter);
+	add_before(&bc->ranges, new_br, *br);
+	*br = new_br;
+
+	return BLK_STS_OK;
+}
+
+/*
+ * Sets type of a range. May merge range into surrounding ranges
+ * Since br may be invalidated, always sets br to NULL to prevent
+ * usage after this is called
+ */
+static void set_type(struct bow_context *bc, struct bow_range **br, int type)
+{
+	struct bow_range *prev = container_of(rb_prev(&(*br)->node),
+						      struct bow_range, node);
+	struct bow_range *next = container_of(rb_next(&(*br)->node),
+						      struct bow_range, node);
+
+	if ((*br)->type == TRIMMED) {
+		bc->trims_total -= range_size(*br);
+		list_del(&(*br)->trimmed_list);
+	}
+
+	if (type == TRIMMED) {
+		bc->trims_total += range_size(*br);
+		list_add(&(*br)->trimmed_list, &bc->trimmed_list);
+	}
+
+	(*br)->type = type;
+
+	if (next->type == type) {
+		if (type == TRIMMED)
+			list_del(&next->trimmed_list);
+		rb_erase(&next->node, &bc->ranges);
+		kfree(next);
+	}
+
+	if (prev->type == type) {
+		if (type == TRIMMED)
+			list_del(&(*br)->trimmed_list);
+		rb_erase(&(*br)->node, &bc->ranges);
+		kfree(*br);
+	}
+
+	*br = NULL;
+}
+
+static struct bow_range *find_free_range(struct bow_context *bc)
+{
+	if (list_empty(&bc->trimmed_list)) {
+		DMERR("Unable to find free space to back up to");
+		return NULL;
+	}
+
+	return list_first_entry(&bc->trimmed_list, struct bow_range,
+				trimmed_list);
+}
+
+static sector_t sector_to_page(struct bow_context const *bc, sector_t sector)
+{
+	WARN_ON((sector & (((sector_t)1 << (bc->block_shift - SECTOR_SHIFT)) - 1))
+		!= 0);
+	return sector >> (bc->block_shift - SECTOR_SHIFT);
+}
+
+static int copy_data(struct bow_context const *bc,
+		     struct bow_range *source, struct bow_range *dest,
+		     u32 *checksum)
+{
+	int i;
+
+	if (range_size(source) != range_size(dest)) {
+		WARN_ON(1);
+		return BLK_STS_IOERR;
+	}
+
+	if (checksum)
+		*checksum = sector_to_page(bc, source->sector);
+
+	for (i = 0; i < range_size(source) >> bc->block_shift; ++i) {
+		struct dm_buffer *read_buffer, *write_buffer;
+		u8 *read, *write;
+		sector_t page = sector_to_page(bc, source->sector) + i;
+
+		read = dm_bufio_read(bc->bufio, page, &read_buffer);
+		if (IS_ERR(read)) {
+			DMERR("Cannot read page %llu",
+			      (unsigned long long)page);
+			return PTR_ERR(read);
+		}
+
+		if (checksum)
+			*checksum = crc32(*checksum, read, bc->block_size);
+
+		write = dm_bufio_new(bc->bufio,
+				     sector_to_page(bc, dest->sector) + i,
+				     &write_buffer);
+		if (IS_ERR(write)) {
+			DMERR("Cannot write sector");
+			dm_bufio_release(read_buffer);
+			return PTR_ERR(write);
+		}
+
+		memcpy(write, read, bc->block_size);
+
+		dm_bufio_mark_buffer_dirty(write_buffer);
+		dm_bufio_release(write_buffer);
+		dm_bufio_release(read_buffer);
+	}
+
+	dm_bufio_write_dirty_buffers(bc->bufio);
+	return BLK_STS_OK;
+}
+
+/****** logging functions ******/
+
+static int add_log_entry(struct bow_context *bc, sector_t source, sector_t dest,
+			 unsigned int size, u32 checksum);
+
+static int backup_log_sector(struct bow_context *bc)
+{
+	struct bow_range *first_br, *free_br;
+	struct bvec_iter bi_iter;
+	u32 checksum = 0;
+	int ret;
+
+	first_br = container_of(rb_first(&bc->ranges), struct bow_range, node);
+
+	if (first_br->type != SECTOR0) {
+		WARN_ON(1);
+		return BLK_STS_IOERR;
+	}
+
+	if (range_size(first_br) != bc->block_size) {
+		WARN_ON(1);
+		return BLK_STS_IOERR;
+	}
+
+	free_br = find_free_range(bc);
+	/* No space left - return this error to userspace */
+	if (!free_br)
+		return BLK_STS_NOSPC;
+	bi_iter.bi_sector = free_br->sector;
+	bi_iter.bi_size = bc->block_size;
+	ret = split_range(bc, &free_br, &bi_iter);
+	if (ret)
+		return ret;
+	if (bi_iter.bi_size != bc->block_size) {
+		WARN_ON(1);
+		return BLK_STS_IOERR;
+	}
+
+	ret = copy_data(bc, first_br, free_br, &checksum);
+	if (ret)
+		return ret;
+
+	bc->log_sector->count = 0;
+	bc->log_sector->sequence++;
+	ret = add_log_entry(bc, first_br->sector, free_br->sector,
+			    range_size(first_br), checksum);
+	if (ret)
+		return ret;
+
+	set_type(bc, &free_br, BACKUP);
+	return BLK_STS_OK;
+}
+
+static int add_log_entry(struct bow_context *bc, sector_t source, sector_t dest,
+			 unsigned int size, u32 checksum)
+{
+	struct dm_buffer *sector_buffer;
+	u8 *sector;
+
+	if (sizeof(struct log_sector)
+	    + sizeof(struct log_entry) * (bc->log_sector->count + 1)
+		> bc->block_size) {
+		int ret = backup_log_sector(bc);
+
+		if (ret)
+			return ret;
+	}
+
+	sector = dm_bufio_new(bc->bufio, 0, &sector_buffer);
+	if (IS_ERR(sector)) {
+		DMERR("Cannot write boot sector");
+		dm_bufio_release(sector_buffer);
+		return BLK_STS_NOSPC;
+	}
+
+	bc->log_sector->entries[bc->log_sector->count].source = source;
+	bc->log_sector->entries[bc->log_sector->count].dest = dest;
+	bc->log_sector->entries[bc->log_sector->count].size = size;
+	bc->log_sector->entries[bc->log_sector->count].checksum = checksum;
+	bc->log_sector->count++;
+
+	memcpy(sector, bc->log_sector, bc->block_size);
+	dm_bufio_mark_buffer_dirty(sector_buffer);
+	dm_bufio_release(sector_buffer);
+	dm_bufio_write_dirty_buffers(bc->bufio);
+	return BLK_STS_OK;
+}
+
+static int prepare_log(struct bow_context *bc)
+{
+	struct bow_range *free_br, *first_br;
+	struct bvec_iter bi_iter;
+	u32 checksum = 0;
+	int ret;
+
+	/* Carve out first sector as log sector */
+	first_br = container_of(rb_first(&bc->ranges), struct bow_range, node);
+	if (first_br->type != UNCHANGED) {
+		WARN_ON(1);
+		return BLK_STS_IOERR;
+	}
+
+	if (range_size(first_br) < bc->block_size) {
+		WARN_ON(1);
+		return BLK_STS_IOERR;
+	}
+	bi_iter.bi_sector = 0;
+	bi_iter.bi_size = bc->block_size;
+	ret = split_range(bc, &first_br, &bi_iter);
+	if (ret)
+		return ret;
+	first_br->type = SECTOR0;
+	if (range_size(first_br) != bc->block_size) {
+		WARN_ON(1);
+		return BLK_STS_IOERR;
+	}
+
+	/* Find free sector for active sector0 reads/writes */
+	free_br = find_free_range(bc);
+	if (!free_br)
+		return BLK_STS_NOSPC;
+	bi_iter.bi_sector = free_br->sector;
+	bi_iter.bi_size = bc->block_size;
+	ret = split_range(bc, &free_br, &bi_iter);
+	if (ret)
+		return ret;
+
+	/* Copy data */
+	ret = copy_data(bc, first_br, free_br, NULL);
+	if (ret)
+		return ret;
+
+	bc->log_sector->sector0 = free_br->sector;
+
+	set_type(bc, &free_br, SECTOR0_CURRENT);
+
+	/* Find free sector to back up original sector zero */
+	free_br = find_free_range(bc);
+	if (!free_br)
+		return BLK_STS_NOSPC;
+	bi_iter.bi_sector = free_br->sector;
+	bi_iter.bi_size = bc->block_size;
+	ret = split_range(bc, &free_br, &bi_iter);
+	if (ret)
+		return ret;
+
+	/* Back up */
+	ret = copy_data(bc, first_br, free_br, &checksum);
+	if (ret)
+		return ret;
+
+	/*
+	 * Set up our replacement boot sector - it will get written when we
+	 * add the first log entry, which we do immediately
+	 */
+	bc->log_sector->magic = MAGIC;
+	bc->log_sector->header_version = HEADER_VERSION;
+	bc->log_sector->header_size = sizeof(*bc->log_sector);
+	bc->log_sector->block_size = bc->block_size;
+	bc->log_sector->count = 0;
+	bc->log_sector->sequence = 0;
+
+	/* Add log entry */
+	ret = add_log_entry(bc, first_br->sector, free_br->sector,
+			    range_size(first_br), checksum);
+	if (ret)
+		return ret;
+
+	set_type(bc, &free_br, BACKUP);
+	return BLK_STS_OK;
+}
+
+static struct bow_range *find_sector0_current(struct bow_context *bc)
+{
+	struct bvec_iter bi_iter;
+
+	bi_iter.bi_sector = bc->log_sector->sector0;
+	bi_iter.bi_size = bc->block_size;
+	return find_first_overlapping_range(&bc->ranges, &bi_iter);
+}
+
+/****** sysfs interface functions ******/
+
+static ssize_t state_show(struct kobject *kobj, struct kobj_attribute *attr,
+			  char *buf)
+{
+	struct bow_context *bc = container_of(kobj, struct bow_context,
+					      kobj_holder.kobj);
+
+	return scnprintf(buf, PAGE_SIZE, "%d\n", atomic_read(&bc->state));
+}
+
+static ssize_t state_store(struct kobject *kobj, struct kobj_attribute *attr,
+			   const char *buf, size_t count)
+{
+	struct bow_context *bc = container_of(kobj, struct bow_context,
+					      kobj_holder.kobj);
+	enum state state, original_state;
+	int ret;
+
+	state = buf[0] - '0';
+	if (state < TRIM || state > COMMITTED) {
+		DMERR("State value %d out of range", state);
+		return -EINVAL;
+	}
+
+	mutex_lock(&bc->ranges_lock);
+	original_state = atomic_read(&bc->state);
+	if (state != original_state + 1) {
+		DMERR("Invalid state change from %d to %d",
+		      original_state, state);
+		ret = -EINVAL;
+		goto bad;
+	}
+
+	DMINFO("Switching to state %s", state == CHECKPOINT ? "Checkpoint"
+	       : state == COMMITTED ? "Committed" : "Unknown");
+
+	if (state == CHECKPOINT) {
+		ret = prepare_log(bc);
+		if (ret) {
+			DMERR("Failed to switch to checkpoint state");
+			goto bad;
+		}
+	} else if (state == COMMITTED) {
+		struct bow_range *br = find_sector0_current(bc);
+		struct bow_range *sector0_br =
+			container_of(rb_first(&bc->ranges), struct bow_range,
+				     node);
+
+		ret = copy_data(bc, br, sector0_br, 0);
+		if (ret) {
+			DMERR("Failed to switch to committed state");
+			goto bad;
+		}
+	}
+	atomic_inc(&bc->state);
+	ret = count;
+
+bad:
+	mutex_unlock(&bc->ranges_lock);
+	return ret;
+}
+
+static ssize_t free_show(struct kobject *kobj, struct kobj_attribute *attr,
+			  char *buf)
+{
+	struct bow_context *bc = container_of(kobj, struct bow_context,
+					      kobj_holder.kobj);
+	u64 trims_total;
+
+	mutex_lock(&bc->ranges_lock);
+	trims_total = bc->trims_total;
+	mutex_unlock(&bc->ranges_lock);
+
+	return scnprintf(buf, PAGE_SIZE, "%llu\n", trims_total);
+}
+
+static struct kobj_attribute attr_state = __ATTR_RW(state);
+static struct kobj_attribute attr_free = __ATTR_RO(free);
+
+static struct attribute *bow_attrs[] = {
+	&attr_state.attr,
+	&attr_free.attr,
+	NULL
+};
+
+static struct kobj_type bow_ktype = {
+	.sysfs_ops = &kobj_sysfs_ops,
+	.default_attrs = bow_attrs,
+	.release = dm_kobject_release
+};
+
+/****** constructor/destructor ******/
+
+static void dm_bow_dtr(struct dm_target *ti)
+{
+	struct bow_context *bc = (struct bow_context *) ti->private;
+	struct kobject *kobj;
+
+	if (bc->workqueue)
+		destroy_workqueue(bc->workqueue);
+	if (bc->bufio)
+		dm_bufio_client_destroy(bc->bufio);
+
+	kobj = &bc->kobj_holder.kobj;
+	if (kobj->state_initialized) {
+		kobject_put(kobj);
+		wait_for_completion(dm_get_completion_from_kobject(kobj));
+	}
+
+	while (rb_first(&bc->ranges)) {
+		struct bow_range *br = container_of(rb_first(&bc->ranges),
+					      struct bow_range, node);
+
+		rb_erase(&br->node, &bc->ranges);
+		kfree(br);
+	}
+
+	mutex_destroy(&bc->ranges_lock);
+	kfree(bc->log_sector);
+	kfree(bc);
+}
+
+static void dm_bow_io_hints(struct dm_target *ti, struct queue_limits *limits)
+{
+	struct bow_context *bc = ti->private;
+	const unsigned int block_size = bc->block_size;
+
+	limits->logical_block_size =
+		max_t(unsigned int, limits->logical_block_size, block_size);
+	limits->physical_block_size =
+		max_t(unsigned int, limits->physical_block_size, block_size);
+	limits->io_min = max_t(unsigned int, limits->io_min, block_size);
+
+	if (limits->max_discard_sectors == 0) {
+		limits->discard_granularity = 1 << 12;
+		limits->max_hw_discard_sectors = 1 << 15;
+		limits->max_discard_sectors = 1 << 15;
+		bc->forward_trims = false;
+	} else {
+		limits->discard_granularity = 1 << 12;
+		bc->forward_trims = true;
+	}
+}
+
+static int dm_bow_ctr_optional(struct dm_target *ti, unsigned int argc, char **argv)
+{
+	struct bow_context *bc = ti->private;
+	struct dm_arg_set as;
+	static const struct dm_arg _args[] = {
+		{0, 1, "Invalid number of feature args"},
+	};
+	unsigned int opt_params;
+	const char *opt_string;
+	int err;
+	char dummy;
+
+	as.argc = argc;
+	as.argv = argv;
+
+	err = dm_read_arg_group(_args, &as, &opt_params, &ti->error);
+	if (err)
+		return err;
+
+	while (opt_params--) {
+		opt_string = dm_shift_arg(&as);
+		if (!opt_string) {
+			ti->error = "Not enough feature arguments";
+			return -EINVAL;
+		}
+
+		if (sscanf(opt_string, "block_size:%u%c",
+					&bc->block_size, &dummy) == 1) {
+			if (bc->block_size < SECTOR_SIZE ||
+			    bc->block_size > 4096 ||
+			    !is_power_of_2(bc->block_size)) {
+				ti->error = "Invalid block_size";
+				return -EINVAL;
+			}
+		} else {
+			ti->error = "Invalid feature arguments";
+			return -EINVAL;
+		}
+	}
+
+	return 0;
+}
+
+static int dm_bow_ctr(struct dm_target *ti, unsigned int argc, char **argv)
+{
+	struct bow_context *bc;
+	struct bow_range *br;
+	int ret;
+
+	if (argc < 1) {
+		ti->error = "Invalid argument count";
+		return -EINVAL;
+	}
+
+	bc = kzalloc(sizeof(*bc), GFP_KERNEL);
+	if (!bc) {
+		ti->error = "Cannot allocate bow context";
+		return -ENOMEM;
+	}
+
+	ti->num_flush_bios = 1;
+	ti->num_discard_bios = 1;
+	ti->num_write_same_bios = 1;
+	ti->private = bc;
+
+	ret = dm_get_device(ti, argv[0], dm_table_get_mode(ti->table),
+			    &bc->dev);
+	if (ret) {
+		ti->error = "Device lookup failed";
+		goto bad;
+	}
+
+	bc->block_size =
+		bdev_get_queue(bc->dev->bdev)->limits.logical_block_size;
+	if (argc > 1) {
+		ret = dm_bow_ctr_optional(ti, argc - 1, &argv[1]);
+		if (ret)
+			goto bad;
+	}
+
+	bc->block_shift = ilog2(bc->block_size);
+	bc->log_sector = kzalloc(bc->block_size, GFP_KERNEL);
+	if (!bc->log_sector) {
+		ti->error = "Cannot allocate log sector";
+		goto bad;
+	}
+
+	init_completion(&bc->kobj_holder.completion);
+	mutex_init(&bc->ranges_lock);
+	bc->ranges = RB_ROOT;
+	bc->bufio = dm_bufio_client_create(bc->dev->bdev, bc->block_size, 1, 0,
+					   NULL, NULL);
+	if (IS_ERR(bc->bufio)) {
+		ti->error = "Cannot initialize dm-bufio";
+		ret = PTR_ERR(bc->bufio);
+		bc->bufio = NULL;
+		goto bad;
+	}
+
+	bc->workqueue = alloc_workqueue("dm-bow",
+					WQ_CPU_INTENSIVE | WQ_MEM_RECLAIM
+					| WQ_UNBOUND, num_online_cpus());
+	if (!bc->workqueue) {
+		ti->error = "Cannot allocate workqueue";
+		ret = -ENOMEM;
+		goto bad;
+	}
+
+	INIT_LIST_HEAD(&bc->trimmed_list);
+
+	br = kzalloc(sizeof(*br), GFP_KERNEL);
+	if (!br) {
+		ti->error = "Cannot allocate ranges";
+		ret = -ENOMEM;
+		goto bad;
+	}
+
+	br->sector = ti->len;
+	br->type = TOP;
+	rb_link_node(&br->node, NULL, &bc->ranges.rb_node);
+	rb_insert_color(&br->node, &bc->ranges);
+
+	br = kzalloc(sizeof(*br), GFP_KERNEL);
+	if (!br) {
+		ti->error = "Cannot allocate ranges";
+		ret = -ENOMEM;
+		goto bad;
+	}
+
+	br->sector = 0;
+	br->type = UNCHANGED;
+	rb_link_node(&br->node, bc->ranges.rb_node,
+		     &bc->ranges.rb_node->rb_left);
+	rb_insert_color(&br->node, &bc->ranges);
+
+	ti->discards_supported = true;
+
+	return 0;
+
+bad:
+	dm_bow_dtr(ti);
+	return ret;
+}
+
+void dm_bow_resume(struct dm_target *ti)
+{
+	struct mapped_device *md = dm_table_get_md(ti->table);
+	struct bow_context *bc = ti->private;
+	int ret;
+
+	if (bc->kobj_holder.kobj.state_initialized)
+		return;
+
+	ret = kobject_init_and_add(&bc->kobj_holder.kobj, &bow_ktype,
+				   &disk_to_dev(dm_disk(md))->kobj, "%s",
+				   "bow");
+	if (ret)
+		ti->error = "Cannot create sysfs node";
+}
+
+/****** Handle writes ******/
+
+static int prepare_unchanged_range(struct bow_context *bc, struct bow_range *br,
+				   struct bvec_iter *bi_iter,
+				   bool record_checksum)
+{
+	struct bow_range *backup_br;
+	struct bvec_iter backup_bi;
+	sector_t log_source, log_dest;
+	unsigned int log_size;
+	u32 checksum = 0;
+	int ret;
+	int original_type;
+	sector_t sector0;
+
+	/* Find a free range */
+	backup_br = find_free_range(bc);
+	if (!backup_br)
+		return BLK_STS_NOSPC;
+
+	/* Carve out a backup range. This may be smaller than the br given */
+	backup_bi.bi_sector = backup_br->sector;
+	backup_bi.bi_size = min(range_size(backup_br), (u64) bi_iter->bi_size);
+	ret = split_range(bc, &backup_br, &backup_bi);
+	if (ret)
+		return ret;
+
+	/*
+	 * Carve out a changed range. This will not be smaller than the backup
+	 * br since the backup br is smaller than the source range and iterator
+	 */
+	bi_iter->bi_size = backup_bi.bi_size;
+	ret = split_range(bc, &br, bi_iter);
+	if (ret)
+		return ret;
+	if (range_size(br) != range_size(backup_br)) {
+		WARN_ON(1);
+		return BLK_STS_IOERR;
+	}
+
+
+	/* Copy data over */
+	ret = copy_data(bc, br, backup_br, record_checksum ? &checksum : NULL);
+	if (ret)
+		return ret;
+
+	/* Add an entry to the log */
+	log_source = br->sector;
+	log_dest = backup_br->sector;
+	log_size = range_size(br);
+
+	/*
+	 * Set the types. Note that since set_type also amalgamates ranges
+	 * we have to set both sectors to their final type before calling
+	 * set_type on either
+	 */
+	original_type = br->type;
+	sector0 = backup_br->sector;
+	bc->trims_total -= range_size(backup_br);
+	if (backup_br->type == TRIMMED)
+		list_del(&backup_br->trimmed_list);
+	backup_br->type = br->type == SECTOR0_CURRENT ? SECTOR0_CURRENT
+						      : BACKUP;
+	br->type = CHANGED;
+	set_type(bc, &backup_br, backup_br->type);
+
+	/*
+	 * Add the log entry after marking the backup sector, since adding a log
+	 * can cause another backup
+	 */
+	ret = add_log_entry(bc, log_source, log_dest, log_size, checksum);
+	if (ret) {
+		br->type = original_type;
+		return ret;
+	}
+
+	/* Now it is safe to mark this backup successful */
+	if (original_type == SECTOR0_CURRENT)
+		bc->log_sector->sector0 = sector0;
+
+	set_type(bc, &br, br->type);
+	return ret;
+}
+
+static int prepare_free_range(struct bow_context *bc, struct bow_range *br,
+			      struct bvec_iter *bi_iter)
+{
+	int ret;
+
+	ret = split_range(bc, &br, bi_iter);
+	if (ret)
+		return ret;
+	set_type(bc, &br, CHANGED);
+	return BLK_STS_OK;
+}
+
+static int prepare_changed_range(struct bow_context *bc, struct bow_range *br,
+				 struct bvec_iter *bi_iter)
+{
+	/* Nothing to do ... */
+	return BLK_STS_OK;
+}
+
+static int prepare_one_range(struct bow_context *bc,
+			     struct bvec_iter *bi_iter)
+{
+	struct bow_range *br = find_first_overlapping_range(&bc->ranges,
+							    bi_iter);
+	switch (br->type) {
+	case CHANGED:
+		return prepare_changed_range(bc, br, bi_iter);
+
+	case TRIMMED:
+		return prepare_free_range(bc, br, bi_iter);
+
+	case UNCHANGED:
+	case BACKUP:
+		return prepare_unchanged_range(bc, br, bi_iter, true);
+
+	/*
+	 * We cannot track the checksum for the active sector0, since it
+	 * may change at any point.
+	 */
+	case SECTOR0_CURRENT:
+		return prepare_unchanged_range(bc, br, bi_iter, false);
+
+	case SECTOR0:	/* Handled in the dm_bow_map */
+	case TOP:	/* Illegal - top is off the end of the device */
+	default:
+		WARN_ON(1);
+		return BLK_STS_IOERR;
+	}
+}
+
+struct write_work {
+	struct work_struct work;
+	struct bow_context *bc;
+	struct bio *bio;
+};
+
+static void bow_write(struct work_struct *work)
+{
+	struct write_work *ww = container_of(work, struct write_work, work);
+	struct bow_context *bc = ww->bc;
+	struct bio *bio = ww->bio;
+	struct bvec_iter bi_iter = bio->bi_iter;
+	int ret = BLK_STS_OK;
+
+	kfree(ww);
+
+	mutex_lock(&bc->ranges_lock);
+	do {
+		ret = prepare_one_range(bc, &bi_iter);
+		bi_iter.bi_sector += bi_iter.bi_size / SECTOR_SIZE;
+		bi_iter.bi_size = bio->bi_iter.bi_size
+			- (bi_iter.bi_sector - bio->bi_iter.bi_sector)
+			  * SECTOR_SIZE;
+	} while (!ret && bi_iter.bi_size);
+
+	mutex_unlock(&bc->ranges_lock);
+
+	if (!ret) {
+		bio_set_dev(bio, bc->dev->bdev);
+		submit_bio(bio);
+	} else {
+		DMERR("Write failure with error %d", -ret);
+		bio->bi_status = ret;
+		bio_endio(bio);
+	}
+}
+
+static int queue_write(struct bow_context *bc, struct bio *bio)
+{
+	struct write_work *ww = kmalloc(sizeof(*ww), GFP_NOIO | __GFP_NORETRY
+					| __GFP_NOMEMALLOC | __GFP_NOWARN);
+	if (!ww) {
+		DMERR("Failed to allocate write_work");
+		return -ENOMEM;
+	}
+
+	INIT_WORK(&ww->work, bow_write);
+	ww->bc = bc;
+	ww->bio = bio;
+	queue_work(bc->workqueue, &ww->work);
+	return DM_MAPIO_SUBMITTED;
+}
+
+static int handle_sector0(struct bow_context *bc, struct bio *bio)
+{
+	int ret = DM_MAPIO_REMAPPED;
+
+	if (bio->bi_iter.bi_size > bc->block_size) {
+		struct bio *split = bio_split(bio,
+					      bc->block_size >> SECTOR_SHIFT,
+					      GFP_NOIO,
+					      &fs_bio_set);
+		if (!split) {
+			DMERR("Failed to split bio");
+			bio->bi_status = BLK_STS_RESOURCE;
+			bio_endio(bio);
+			return DM_MAPIO_SUBMITTED;
+		}
+
+		bio_chain(split, bio);
+		split->bi_iter.bi_sector = bc->log_sector->sector0;
+		bio_set_dev(split, bc->dev->bdev);
+		submit_bio(split);
+
+		if (bio_data_dir(bio) == WRITE)
+			ret = queue_write(bc, bio);
+	} else {
+		bio->bi_iter.bi_sector = bc->log_sector->sector0;
+	}
+
+	return ret;
+}
+
+static int add_trim(struct bow_context *bc, struct bio *bio)
+{
+	struct bow_range *br;
+	struct bvec_iter bi_iter = bio->bi_iter;
+
+	DMDEBUG("add_trim: %llu, %u",
+		(unsigned long long)bio->bi_iter.bi_sector,
+		bio->bi_iter.bi_size);
+
+	do {
+		br = find_first_overlapping_range(&bc->ranges, &bi_iter);
+
+		switch (br->type) {
+		case UNCHANGED:
+			if (!split_range(bc, &br, &bi_iter))
+				set_type(bc, &br, TRIMMED);
+			break;
+
+		case TRIMMED:
+			/* Nothing to do */
+			break;
+
+		default:
+			/* No other case is legal in TRIM state */
+			WARN_ON(true);
+			break;
+		}
+
+		bi_iter.bi_sector += bi_iter.bi_size / SECTOR_SIZE;
+		bi_iter.bi_size = bio->bi_iter.bi_size
+			- (bi_iter.bi_sector - bio->bi_iter.bi_sector)
+			  * SECTOR_SIZE;
+
+	} while (bi_iter.bi_size);
+
+	bio_endio(bio);
+	return DM_MAPIO_SUBMITTED;
+}
+
+static int remove_trim(struct bow_context *bc, struct bio *bio)
+{
+	struct bow_range *br;
+	struct bvec_iter bi_iter = bio->bi_iter;
+
+	DMDEBUG("remove_trim: %llu, %u",
+		(unsigned long long)bio->bi_iter.bi_sector,
+		bio->bi_iter.bi_size);
+
+	do {
+		br = find_first_overlapping_range(&bc->ranges, &bi_iter);
+
+		switch (br->type) {
+		case UNCHANGED:
+			/* Nothing to do */
+			break;
+
+		case TRIMMED:
+			if (!split_range(bc, &br, &bi_iter))
+				set_type(bc, &br, UNCHANGED);
+			break;
+
+		default:
+			/* No other case is legal in TRIM state */
+			WARN_ON(true);
+			break;
+		}
+
+		bi_iter.bi_sector += bi_iter.bi_size / SECTOR_SIZE;
+		bi_iter.bi_size = bio->bi_iter.bi_size
+			- (bi_iter.bi_sector - bio->bi_iter.bi_sector)
+			  * SECTOR_SIZE;
+
+	} while (bi_iter.bi_size);
+
+	return DM_MAPIO_REMAPPED;
+}
+
+int remap_unless_illegal_trim(struct bow_context *bc, struct bio *bio)
+{
+	if (!bc->forward_trims && bio_op(bio) == REQ_OP_DISCARD) {
+		bio->bi_status = BLK_STS_NOTSUPP;
+		bio_endio(bio);
+		return DM_MAPIO_SUBMITTED;
+	} else {
+		bio_set_dev(bio, bc->dev->bdev);
+		return DM_MAPIO_REMAPPED;
+	}
+}
+
+/****** dm interface ******/
+
+static int dm_bow_map(struct dm_target *ti, struct bio *bio)
+{
+	int ret = DM_MAPIO_REMAPPED;
+	struct bow_context *bc = ti->private;
+
+	if (likely(bc->state.counter == COMMITTED))
+		return remap_unless_illegal_trim(bc, bio);
+
+	if (bio_data_dir(bio) == READ && bio->bi_iter.bi_sector != 0)
+		return remap_unless_illegal_trim(bc, bio);
+
+	if (atomic_read(&bc->state) != COMMITTED) {
+		enum state state;
+
+		mutex_lock(&bc->ranges_lock);
+		state = atomic_read(&bc->state);
+		if (state == TRIM) {
+			if (bio_op(bio) == REQ_OP_DISCARD)
+				ret = add_trim(bc, bio);
+			else if (bio_data_dir(bio) == WRITE)
+				ret = remove_trim(bc, bio);
+			else
+				/* pass-through */;
+		} else if (state == CHECKPOINT) {
+			if (bio->bi_iter.bi_sector == 0)
+				ret = handle_sector0(bc, bio);
+			else if (bio_data_dir(bio) == WRITE)
+				ret = queue_write(bc, bio);
+			else
+				/* pass-through */;
+		} else {
+			/* pass-through */
+		}
+		mutex_unlock(&bc->ranges_lock);
+	}
+
+	if (ret == DM_MAPIO_REMAPPED)
+		return remap_unless_illegal_trim(bc, bio);
+
+	return ret;
+}
+
+static void dm_bow_tablestatus(struct dm_target *ti, char *result,
+			       unsigned int maxlen)
+{
+	char *end = result + maxlen;
+	struct bow_context *bc = ti->private;
+	struct rb_node *i;
+	int trimmed_list_length = 0;
+	int trimmed_range_count = 0;
+	struct bow_range *br;
+
+	if (maxlen == 0)
+		return;
+	result[0] = 0;
+
+	list_for_each_entry(br, &bc->trimmed_list, trimmed_list)
+		if (br->type == TRIMMED) {
+			++trimmed_list_length;
+		} else {
+			scnprintf(result, end - result,
+				  "ERROR: non-trimmed entry in trimmed_list");
+			return;
+		}
+
+	if (!rb_first(&bc->ranges)) {
+		scnprintf(result, end - result, "ERROR: Empty ranges");
+		return;
+	}
+
+	if (container_of(rb_first(&bc->ranges), struct bow_range, node)
+	    ->sector) {
+		scnprintf(result, end - result,
+			 "ERROR: First range does not start at sector 0");
+		return;
+	}
+
+	for (i = rb_first(&bc->ranges); i; i = rb_next(i)) {
+		struct bow_range *br = container_of(i, struct bow_range, node);
+
+		result += scnprintf(result, end - result, "%s: %llu",
+				    readable_type[br->type],
+				    (unsigned long long)br->sector);
+		if (result >= end)
+			return;
+
+		result += scnprintf(result, end - result, "\n");
+		if (result >= end)
+			return;
+
+		if (br->type == TRIMMED)
+			++trimmed_range_count;
+
+		if (br->type == TOP) {
+			if (br->sector != ti->len) {
+				scnprintf(result, end - result,
+					 "\nERROR: Top sector is incorrect");
+			}
+
+			if (&br->node != rb_last(&bc->ranges)) {
+				scnprintf(result, end - result,
+					  "\nERROR: Top sector is not last");
+			}
+
+			break;
+		}
+
+		if (!rb_next(i)) {
+			scnprintf(result, end - result,
+				  "\nERROR: Last range not of type TOP");
+			return;
+		}
+
+		if (br->sector > range_top(br)) {
+			scnprintf(result, end - result,
+				  "\nERROR: sectors out of order");
+			return;
+		}
+	}
+
+	if (trimmed_range_count != trimmed_list_length)
+		scnprintf(result, end - result,
+			  "\nERROR: not all trimmed ranges in trimmed list");
+}
+
+static void dm_bow_status(struct dm_target *ti, status_type_t type,
+			  unsigned int status_flags, char *result,
+			  unsigned int maxlen)
+{
+	switch (type) {
+	case STATUSTYPE_INFO:
+	case STATUSTYPE_IMA:
+		if (maxlen)
+			result[0] = 0;
+		break;
+
+	case STATUSTYPE_TABLE:
+		dm_bow_tablestatus(ti, result, maxlen);
+		break;
+	}
+}
+
+int dm_bow_prepare_ioctl(struct dm_target *ti, struct block_device **bdev)
+{
+	struct bow_context *bc = ti->private;
+	struct dm_dev *dev = bc->dev;
+
+	*bdev = dev->bdev;
+	/* Only pass ioctls through if the device sizes match exactly. */
+	return ti->len != i_size_read(dev->bdev->bd_inode) >> SECTOR_SHIFT;
+}
+
+static int dm_bow_iterate_devices(struct dm_target *ti,
+				  iterate_devices_callout_fn fn, void *data)
+{
+	struct bow_context *bc = ti->private;
+
+	return fn(ti, bc->dev, 0, ti->len, data);
+}
+
+static struct target_type bow_target = {
+	.name   = "bow",
+	.version = {1, 2, 0},
+	.features = DM_TARGET_PASSES_CRYPTO,
+	.module = THIS_MODULE,
+	.ctr    = dm_bow_ctr,
+	.resume = dm_bow_resume,
+	.dtr    = dm_bow_dtr,
+	.map    = dm_bow_map,
+	.status = dm_bow_status,
+	.prepare_ioctl  = dm_bow_prepare_ioctl,
+	.iterate_devices = dm_bow_iterate_devices,
+	.io_hints = dm_bow_io_hints,
+};
+
+int __init dm_bow_init(void)
+{
+	int r = dm_register_target(&bow_target);
+
+	if (r < 0)
+		DMERR("registering bow failed %d", r);
+	return r;
+}
+
+void dm_bow_exit(void)
+{
+	dm_unregister_target(&bow_target);
+}
+
+MODULE_LICENSE("GPL");
+
+module_init(dm_bow_init);
+module_exit(dm_bow_exit);
diff --git a/drivers/md/dm-verity-target.c b/drivers/md/dm-verity-target.c
index 426299c..5ecca6d 100644
--- a/drivers/md/dm-verity-target.c
+++ b/drivers/md/dm-verity-target.c
@@ -1280,8 +1280,16 @@
 		goto bad;
 	}
 
-	/* WQ_UNBOUND greatly improves performance when running on ramdisk */
-	v->verify_wq = alloc_workqueue("kverityd", WQ_CPU_INTENSIVE | WQ_MEM_RECLAIM | WQ_UNBOUND, num_online_cpus());
+	/*
+	 * Using WQ_HIGHPRI improves throughput and completion latency by
+	 * reducing wait times when reading from a dm-verity device.
+	 *
+	 * Also as required for the "try_verify_in_tasklet" feature: WQ_HIGHPRI
+	 * allows verify_wq to preempt softirq since verification in tasklet
+	 * will fall-back to using it for error handling (or if the bufio cache
+	 * doesn't have required hashes).
+	 */
+	v->verify_wq = alloc_workqueue("kverityd", WQ_MEM_RECLAIM | WQ_HIGHPRI, 0);
 	if (!v->verify_wq) {
 		ti->error = "Cannot allocate workqueue";
 		r = -ENOMEM;
diff --git a/drivers/net/wireless/ath/ath6kl/cfg80211.c b/drivers/net/wireless/ath/ath6kl/cfg80211.c
index e1f10db..e3fe5e0 100644
--- a/drivers/net/wireless/ath/ath6kl/cfg80211.c
+++ b/drivers/net/wireless/ath/ath6kl/cfg80211.c
@@ -1119,7 +1119,7 @@
 					NL80211_CHAN_HT20 : NL80211_CHAN_NO_HT);
 
 	mutex_lock(&vif->wdev.mtx);
-	cfg80211_ch_switch_notify(vif->ndev, &chandef, 0);
+	cfg80211_ch_switch_notify(vif->ndev, &chandef, 0, 0);
 	mutex_unlock(&vif->wdev.mtx);
 }
 
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
index c110082..4b8db12 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
@@ -6013,7 +6013,7 @@
 	brcmf_dbg(CONN, "Report roaming result\n");
 
 	if (profile->use_fwsup == BRCMF_PROFILE_FWSUP_1X && profile->is_ft) {
-		cfg80211_port_authorized(ndev, profile->bssid, GFP_KERNEL);
+		cfg80211_port_authorized(ndev, profile->bssid, NULL, 0, GFP_KERNEL);
 		brcmf_dbg(CONN, "Report port authorized\n");
 	}
 
diff --git a/drivers/net/wireless/marvell/mwifiex/11h.c b/drivers/net/wireless/marvell/mwifiex/11h.c
index 4ca8d01..e8c1c60 100644
--- a/drivers/net/wireless/marvell/mwifiex/11h.c
+++ b/drivers/net/wireless/marvell/mwifiex/11h.c
@@ -304,6 +304,6 @@
 	mwifiex_dbg(priv->adapter, MSG,
 		    "indicating channel switch completion to kernel\n");
 	mutex_lock(&priv->wdev.mtx);
-	cfg80211_ch_switch_notify(priv->netdev, &priv->dfs_chandef, 0);
+	cfg80211_ch_switch_notify(priv->netdev, &priv->dfs_chandef, 0, 0);
 	mutex_unlock(&priv->wdev.mtx);
 }
diff --git a/drivers/net/wireless/quantenna/qtnfmac/event.c b/drivers/net/wireless/quantenna/qtnfmac/event.c
index 4fafe37..31bc58e 100644
--- a/drivers/net/wireless/quantenna/qtnfmac/event.c
+++ b/drivers/net/wireless/quantenna/qtnfmac/event.c
@@ -478,7 +478,7 @@
 			continue;
 
 		mutex_lock(&vif->wdev.mtx);
-		cfg80211_ch_switch_notify(vif->netdev, &chandef, 0);
+		cfg80211_ch_switch_notify(vif->netdev, &chandef, 0, 0);
 		mutex_unlock(&vif->wdev.mtx);
 	}
 
@@ -662,6 +662,7 @@
 	memcpy(ie, owe_ev->ies, ie_len);
 	owe_info.ie_len = ie_len;
 	owe_info.ie = ie;
+	owe_info.assoc_link_id = -1;
 
 	pr_info("%s: external OWE processing: peer=%pM\n",
 		vif->netdev->name, owe_ev->peer);
diff --git a/drivers/of/fdt.c b/drivers/of/fdt.c
index 335e7bd..8d9f6f0 100644
--- a/drivers/of/fdt.c
+++ b/drivers/of/fdt.c
@@ -26,7 +26,6 @@
 #include <linux/serial_core.h>
 #include <linux/sysfs.h>
 #include <linux/random.h>
-#include <linux/kmemleak.h>
 
 #include <asm/setup.h>  /* for COMMAND_LINE_SIZE */
 #include <asm/page.h>
@@ -525,12 +524,9 @@
 		size = dt_mem_next_cell(dt_root_size_cells, &prop);
 
 		if (size &&
-		    early_init_dt_reserve_memory_arch(base, size, nomap) == 0) {
+		    early_init_dt_reserve_memory_arch(base, size, nomap) == 0)
 			pr_debug("Reserved memory: reserved region for node '%s': base %pa, size %lu MiB\n",
 				uname, &base, (unsigned long)(size / SZ_1M));
-			if (!nomap)
-				kmemleak_alloc_phys(base, size, 0, 0);
-		}
 		else
 			pr_info("Reserved memory: failed to reserve memory for node '%s': base %pa, size %lu MiB\n",
 				uname, &base, (unsigned long)(size / SZ_1M));
diff --git a/drivers/perf/arm-cmn.c b/drivers/perf/arm-cmn.c
index 0e48adc..9ddb503 100644
--- a/drivers/perf/arm-cmn.c
+++ b/drivers/perf/arm-cmn.c
@@ -36,7 +36,7 @@
 #define CMN_CI_CHILD_COUNT		GENMASK_ULL(15, 0)
 #define CMN_CI_CHILD_PTR_OFFSET		GENMASK_ULL(31, 16)
 
-#define CMN_CHILD_NODE_ADDR		GENMASK(27, 0)
+#define CMN_CHILD_NODE_ADDR		GENMASK(29, 0)
 #define CMN_CHILD_NODE_EXTERNAL		BIT(31)
 
 #define CMN_MAX_DIMENSION		8
@@ -71,9 +71,11 @@
 #define CMN_DTM_WPn(n)			(0x1A0 + (n) * 0x18)
 #define CMN_DTM_WPn_CONFIG(n)		(CMN_DTM_WPn(n) + 0x00)
 #define CMN_DTM_WPn_CONFIG_WP_DEV_SEL2	GENMASK_ULL(18,17)
-#define CMN_DTM_WPn_CONFIG_WP_COMBINE	BIT(6)
-#define CMN_DTM_WPn_CONFIG_WP_EXCLUSIVE	BIT(5)
-#define CMN_DTM_WPn_CONFIG_WP_GRP	BIT(4)
+#define CMN_DTM_WPn_CONFIG_WP_COMBINE	BIT(9)
+#define CMN_DTM_WPn_CONFIG_WP_EXCLUSIVE	BIT(8)
+#define CMN600_WPn_CONFIG_WP_COMBINE	BIT(6)
+#define CMN600_WPn_CONFIG_WP_EXCLUSIVE	BIT(5)
+#define CMN_DTM_WPn_CONFIG_WP_GRP	GENMASK_ULL(5, 4)
 #define CMN_DTM_WPn_CONFIG_WP_CHN_SEL	GENMASK_ULL(3, 1)
 #define CMN_DTM_WPn_CONFIG_WP_DEV_SEL	BIT(0)
 #define CMN_DTM_WPn_VAL(n)		(CMN_DTM_WPn(n) + 0x08)
@@ -155,6 +157,7 @@
 #define CMN_CONFIG_WP_COMBINE		GENMASK_ULL(27, 24)
 #define CMN_CONFIG_WP_DEV_SEL		GENMASK_ULL(50, 48)
 #define CMN_CONFIG_WP_CHN_SEL		GENMASK_ULL(55, 51)
+/* Note that we don't yet support the tertiary match group on newer IPs */
 #define CMN_CONFIG_WP_GRP		BIT_ULL(56)
 #define CMN_CONFIG_WP_EXCLUSIVE		BIT_ULL(57)
 #define CMN_CONFIG1_WP_VAL		GENMASK_ULL(63, 0)
@@ -595,6 +598,9 @@
 		if ((intf & 4) && !(cmn->ports_used & BIT(intf & 3)))
 			return 0;
 
+		if (chan == 4 && cmn->model == CMN600)
+			return 0;
+
 		if ((chan == 5 && cmn->rsp_vc_num < 2) ||
 		    (chan == 6 && cmn->dat_vc_num < 2))
 			return 0;
@@ -905,15 +911,18 @@
 	u32 grp = CMN_EVENT_WP_GRP(event);
 	u32 exc = CMN_EVENT_WP_EXCLUSIVE(event);
 	u32 combine = CMN_EVENT_WP_COMBINE(event);
+	bool is_cmn600 = to_cmn(event->pmu)->model == CMN600;
 
 	config = FIELD_PREP(CMN_DTM_WPn_CONFIG_WP_DEV_SEL, dev) |
 		 FIELD_PREP(CMN_DTM_WPn_CONFIG_WP_CHN_SEL, chn) |
 		 FIELD_PREP(CMN_DTM_WPn_CONFIG_WP_GRP, grp) |
-		 FIELD_PREP(CMN_DTM_WPn_CONFIG_WP_EXCLUSIVE, exc) |
 		 FIELD_PREP(CMN_DTM_WPn_CONFIG_WP_DEV_SEL2, dev >> 1);
+	if (exc)
+		config |= is_cmn600 ? CMN600_WPn_CONFIG_WP_EXCLUSIVE :
+				      CMN_DTM_WPn_CONFIG_WP_EXCLUSIVE;
 	if (combine && !grp)
-		config |= CMN_DTM_WPn_CONFIG_WP_COMBINE;
-
+		config |= is_cmn600 ? CMN600_WPn_CONFIG_WP_COMBINE :
+				      CMN_DTM_WPn_CONFIG_WP_COMBINE;
 	return config;
 }
 
@@ -1242,7 +1251,6 @@
 			hw->dn++;
 			continue;
 		}
-		hw->dtcs_used |= arm_cmn_node_to_xp(cmn, dn)->dtc;
 		hw->num_dns++;
 		if (bynodeid)
 			break;
@@ -1255,6 +1263,12 @@
 			nodeid, nid.x, nid.y, nid.port, nid.dev, type);
 		return -EINVAL;
 	}
+	/*
+	 * Keep assuming non-cycles events count in all DTC domains; turns out
+	 * it's hard to make a worthwhile optimisation around this, short of
+	 * going all-in with domain-local counter allocation as well.
+	 */
+	hw->dtcs_used = (1U << cmn->num_dtcs) - 1;
 
 	return arm_cmn_validate_group(cmn, event);
 }
diff --git a/drivers/scsi/ufs/ufs-qcom.c b/drivers/scsi/ufs/ufs-qcom.c
index 1a65160..08c7938 100644
--- a/drivers/scsi/ufs/ufs-qcom.c
+++ b/drivers/scsi/ufs/ufs-qcom.c
@@ -1548,10 +1548,16 @@
 #endif
 
 static const struct dev_pm_ops ufs_qcom_pm_ops = {
-	SET_SYSTEM_SLEEP_PM_OPS(ufshcd_system_suspend, ufshcd_system_resume)
 	SET_RUNTIME_PM_OPS(ufshcd_runtime_suspend, ufshcd_runtime_resume, NULL)
 	.prepare	 = ufshcd_suspend_prepare,
 	.complete	 = ufshcd_resume_complete,
+#ifdef CONFIG_PM_SLEEP
+	.suspend         = ufshcd_system_suspend,
+	.resume          = ufshcd_system_resume,
+	.freeze          = ufshcd_system_freeze,
+	.restore         = ufshcd_system_restore,
+	.thaw            = ufshcd_system_thaw,
+#endif
 };
 
 static struct platform_driver ufs_qcom_pltform = {
diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c
index 379114f..5735d85 100644
--- a/drivers/scsi/ufs/ufshcd.c
+++ b/drivers/scsi/ufs/ufshcd.c
@@ -7872,7 +7872,7 @@
 	peer_pa_tactivate_us = peer_pa_tactivate *
 			     gran_to_us_table[peer_granularity - 1];
 
-	if (pa_tactivate_us > peer_pa_tactivate_us) {
+	if (pa_tactivate_us >= peer_pa_tactivate_us) {
 		u32 new_peer_pa_tactivate;
 
 		new_peer_pa_tactivate = pa_tactivate_us /
@@ -8716,9 +8716,11 @@
 	for (retries = 3; retries > 0; --retries) {
 		ret = scsi_execute(sdp, cmd, DMA_NONE, NULL, 0, NULL, &sshdr,
 				   HZ, 0, 0, RQF_PM, NULL);
-		if (!scsi_status_is_check_condition(ret) ||
-				!scsi_sense_valid(&sshdr) ||
-				sshdr.sense_key != UNIT_ATTENTION)
+		/*
+		 * scsi_execute() only returns a negative value if the request
+		 * queue is dying.
+		 */
+		if (ret <= 0)
 			break;
 	}
 	if (ret) {
@@ -9499,6 +9501,56 @@
 }
 EXPORT_SYMBOL_GPL(ufshcd_remove);
 
+#ifdef CONFIG_PM_SLEEP
+int ufshcd_system_freeze(struct device *dev)
+{
+
+	return ufshcd_system_suspend(dev);
+
+}
+EXPORT_SYMBOL_GPL(ufshcd_system_freeze);
+
+int ufshcd_system_restore(struct device *dev)
+{
+
+	struct ufs_hba *hba = dev_get_drvdata(dev);
+	int ret;
+
+	ret = ufshcd_system_resume(dev);
+	if (ret)
+		return ret;
+
+	/* Configure UTRL and UTMRL base address registers */
+	ufshcd_writel(hba, lower_32_bits(hba->utrdl_dma_addr),
+			REG_UTP_TRANSFER_REQ_LIST_BASE_L);
+	ufshcd_writel(hba, upper_32_bits(hba->utrdl_dma_addr),
+			REG_UTP_TRANSFER_REQ_LIST_BASE_H);
+	ufshcd_writel(hba, lower_32_bits(hba->utmrdl_dma_addr),
+			REG_UTP_TASK_REQ_LIST_BASE_L);
+	ufshcd_writel(hba, upper_32_bits(hba->utmrdl_dma_addr),
+			REG_UTP_TASK_REQ_LIST_BASE_H);
+	/*
+	 * Make sure that UTRL and UTMRL base address registers
+	 * are updated with the latest queue addresses. Only after
+	 * updating these addresses, we can queue the new commands.
+	 */
+	mb();
+
+	/* Resuming from hibernate, assume that link was OFF */
+	ufshcd_set_link_off(hba);
+
+	return 0;
+
+}
+EXPORT_SYMBOL_GPL(ufshcd_system_restore);
+
+int ufshcd_system_thaw(struct device *dev)
+{
+	return ufshcd_system_resume(dev);
+}
+EXPORT_SYMBOL_GPL(ufshcd_system_thaw);
+#endif /* CONFIG_PM_SLEEP  */
+
 /**
  * ufshcd_dealloc_host - deallocate Host Bus Adapter (HBA)
  * @hba: pointer to Host Bus Adapter (HBA)
diff --git a/drivers/scsi/ufs/ufshcd.h b/drivers/scsi/ufs/ufshcd.h
index 94451f6..bbdb212 100644
--- a/drivers/scsi/ufs/ufshcd.h
+++ b/drivers/scsi/ufs/ufshcd.h
@@ -1150,8 +1150,12 @@
 #ifdef CONFIG_PM_SLEEP
 extern int ufshcd_system_suspend(struct device *dev);
 extern int ufshcd_system_resume(struct device *dev);
+extern int ufshcd_system_freeze(struct device *dev);
+extern int ufshcd_system_thaw(struct device *dev);
+extern int ufshcd_system_restore(struct device *dev);
 #endif
 extern int ufshcd_shutdown(struct ufs_hba *hba);
+
 extern int ufshcd_dme_configure_adapt(struct ufs_hba *hba,
 				      int agreed_gear,
 				      int adapt_val);
diff --git a/drivers/thermal/cpufreq_cooling.c b/drivers/thermal/cpufreq_cooling.c
index 006960f..aaabbd4 100644
--- a/drivers/thermal/cpufreq_cooling.c
+++ b/drivers/thermal/cpufreq_cooling.c
@@ -60,6 +60,7 @@
  * @cdev: thermal_cooling_device pointer to keep track of the
  *	registered cooling device.
  * @policy: cpufreq policy.
+ * @cooling_ops: cpufreq callbacks to thermal cooling device ops
  * @idle_time: idle time stats
  * @qos_req: PM QoS contraint to apply
  *
@@ -72,6 +73,7 @@
 	unsigned int max_level;
 	struct em_perf_domain *em;
 	struct cpufreq_policy *policy;
+	struct thermal_cooling_device_ops cooling_ops;
 #ifndef CONFIG_SMP
 	struct time_in_idle *idle_time;
 #endif
@@ -496,14 +498,6 @@
 	return ret;
 }
 
-/* Bind cpufreq callbacks to thermal cooling device ops */
-
-static struct thermal_cooling_device_ops cpufreq_cooling_ops = {
-	.get_max_state		= cpufreq_get_max_state,
-	.get_cur_state		= cpufreq_get_cur_state,
-	.set_cur_state		= cpufreq_set_cur_state,
-};
-
 /**
  * __cpufreq_cooling_register - helper function to create cpufreq cooling device
  * @np: a valid struct device_node to the cooling device device tree node
@@ -565,7 +559,10 @@
 	/* max_level is an index, not a counter */
 	cpufreq_cdev->max_level = i - 1;
 
-	cooling_ops = &cpufreq_cooling_ops;
+	cooling_ops = &cpufreq_cdev->cooling_ops;
+	cooling_ops->get_max_state = cpufreq_get_max_state;
+	cooling_ops->get_cur_state = cpufreq_get_cur_state;
+	cooling_ops->set_cur_state = cpufreq_set_cur_state;
 
 #ifdef CONFIG_THERMAL_GOV_POWER_ALLOCATOR
 	if (em_is_sane(cpufreq_cdev, em)) {
diff --git a/drivers/thermal/gov_power_allocator.c b/drivers/thermal/gov_power_allocator.c
index 1f47321..7acba5f 100644
--- a/drivers/thermal/gov_power_allocator.c
+++ b/drivers/thermal/gov_power_allocator.c
@@ -725,22 +725,22 @@
 		return 0;
 
 	/*
-	 * Enable or disable IPA control by temperature and user power budget.
+	 * Control the IPA by user.
 	 * About enable:
-	 *	true: enable IPA control when temperature >= swtich_on_temp.
-	 *	false: disable IPA control when temperature < switch_on_temp.
+	 *	true: enable IPA control.
+	 *	false: disable IPA control.
 	 * About override:
 	 *	true: power budget is overridden by user power budget.
 	 *	false: power budget is not overridden, there's no other thermal
 	 *	requirement.
 	 */
 	trace_android_vh_enable_thermal_power_throttle(&enable, &override);
-	if (enable)
-		ret = tz->ops->get_trip_temp(tz, params->trip_switch_on,
+	ret = tz->ops->get_trip_temp(tz, params->trip_switch_on,
 					     &switch_on_temp);
 	if (!enable || (!ret && (tz->temperature < switch_on_temp) &&
 			!override)) {
 		update = (tz->last_temperature >= switch_on_temp);
+		trace_android_vh_modify_thermal_throttle_update(tz, &update);
 		tz->passive = 0;
 		reset_pid_controller(params);
 		allow_maximum_power(tz, update);
diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c
index 01478bf..f5f0670 100644
--- a/drivers/usb/dwc3/gadget.c
+++ b/drivers/usb/dwc3/gadget.c
@@ -1709,6 +1709,7 @@
 	else if (!ret)
 		dep->flags |= DWC3_EP_END_TRANSFER_PENDING;
 
+	dep->flags &= ~DWC3_EP_DELAY_STOP;
 	return ret;
 }
 
@@ -2100,8 +2101,6 @@
 {
 	struct dwc3_gadget_ep_cmd_params	params;
 	struct dwc3				*dwc = dep->dwc;
-	struct dwc3_request			*req;
-	struct dwc3_request			*tmp;
 	int					ret;
 
 	if (usb_endpoint_xfer_isoc(dep->endpoint.desc)) {
@@ -2150,8 +2149,8 @@
 
 		dwc3_stop_active_transfer(dep, true, true);
 
-		list_for_each_entry_safe(req, tmp, &dep->started_list, list)
-			dwc3_gadget_move_cancelled_request(req, DWC3_REQUEST_STATUS_STALLED);
+		if (!list_empty(&dep->started_list))
+			dep->flags |= DWC3_EP_DELAY_START;
 
 		if (dep->flags & DWC3_EP_END_TRANSFER_PENDING ||
 		    (dep->flags & DWC3_EP_DELAY_STOP)) {
@@ -2162,8 +2161,6 @@
 			return 0;
 		}
 
-		dwc3_gadget_ep_cleanup_cancelled_requests(dep);
-
 		ret = dwc3_send_clear_stall_ep_cmd(dep);
 		if (ret) {
 			dev_err(dwc->dev, "failed to clear STALL on %s\n",
@@ -3705,8 +3702,10 @@
 	if (dep->number <= 1 && dwc->ep0state != EP0_DATA_PHASE)
 		return;
 
+	if (interrupt && (dep->flags & DWC3_EP_DELAY_STOP))
+		return;
+
 	if (!(dep->flags & DWC3_EP_TRANSFER_STARTED) ||
-	    (dep->flags & DWC3_EP_DELAY_STOP) ||
 	    (dep->flags & DWC3_EP_END_TRANSFER_PENDING))
 		return;
 
@@ -4210,15 +4209,8 @@
 		break;
 	case DWC3_DEVICE_EVENT_SUSPEND:
 		/* It changed to be suspend event for version 2.30a and above */
-		if (!DWC3_VER_IS_PRIOR(DWC3, 230A)) {
-			/*
-			 * Ignore suspend event until the gadget enters into
-			 * USB_STATE_CONFIGURED state.
-			 */
-			if (dwc->gadget->state >= USB_STATE_CONFIGURED)
-				dwc3_gadget_suspend_interrupt(dwc,
-						event->event_info);
-		}
+		if (!DWC3_VER_IS_PRIOR(DWC3, 230A))
+			dwc3_gadget_suspend_interrupt(dwc, event->event_info);
 		break;
 	case DWC3_DEVICE_EVENT_SOF:
 	case DWC3_DEVICE_EVENT_ERRATIC_ERROR:
diff --git a/drivers/usb/gadget/composite.c b/drivers/usb/gadget/composite.c
index 9315313..83df30b 100644
--- a/drivers/usb/gadget/composite.c
+++ b/drivers/usb/gadget/composite.c
@@ -2447,6 +2447,10 @@
 			usb_gadget_clear_selfpowered(gadget);
 
 		usb_gadget_vbus_draw(gadget, maxpower);
+	} else {
+		maxpower = CONFIG_USB_GADGET_VBUS_DRAW;
+		maxpower = min(maxpower, 100U);
+		usb_gadget_vbus_draw(gadget, maxpower);
 	}
 
 	cdev->suspended = 0;
diff --git a/drivers/usb/gadget/configfs.c b/drivers/usb/gadget/configfs.c
index 7729edd..3f87d9a 100644
--- a/drivers/usb/gadget/configfs.c
+++ b/drivers/usb/gadget/configfs.c
@@ -16,7 +16,7 @@
 #include <linux/usb/ch9.h>
 
 #ifdef CONFIG_USB_CONFIGFS_F_ACC
-extern int acc_ctrlrequest(struct usb_composite_dev *cdev,
+extern int acc_ctrlrequest_composite(struct usb_composite_dev *cdev,
 				const struct usb_ctrlrequest *ctrl);
 void acc_disconnect(void);
 #endif
@@ -461,6 +461,12 @@
 	 * from another gadget or a random directory.
 	 * Also a function instance can only be linked once.
 	 */
+
+	if (gi->composite.gadget_driver.udc_name) {
+		ret = -EINVAL;
+		goto out;
+	}
+
 	list_for_each_entry(a_fi, &gi->available_func, cfs_list) {
 		if (a_fi == fi)
 			break;
@@ -1562,7 +1568,7 @@
 
 #ifdef CONFIG_USB_CONFIGFS_F_ACC
 	if (value < 0)
-		value = acc_ctrlrequest(cdev, c);
+		value = acc_ctrlrequest_composite(cdev, c);
 #endif
 
 	if (value < 0)
diff --git a/drivers/usb/gadget/function/f_accessory.c b/drivers/usb/gadget/function/f_accessory.c
index e444e20..84f2bfc 100644
--- a/drivers/usb/gadget/function/f_accessory.c
+++ b/drivers/usb/gadget/function/f_accessory.c
@@ -29,6 +29,7 @@
 #include <linux/kthread.h>
 #include <linux/freezer.h>
 #include <linux/kref.h>
+#include <linux/kernel.h>
 
 #include <linux/types.h>
 #include <linux/file.h>
@@ -1076,11 +1077,32 @@
 }
 EXPORT_SYMBOL_GPL(acc_ctrlrequest);
 
+int acc_ctrlrequest_composite(struct usb_composite_dev *cdev,
+			      const struct usb_ctrlrequest *ctrl)
+{
+	u16 w_length = le16_to_cpu(ctrl->wLength);
+
+	if (w_length > USB_COMP_EP0_BUFSIZ) {
+		if (ctrl->bRequestType & USB_DIR_IN) {
+			/* Cast away the const, we are going to overwrite on purpose. */
+			__le16 *temp = (__le16 *)&ctrl->wLength;
+
+			*temp = cpu_to_le16(USB_COMP_EP0_BUFSIZ);
+			w_length = USB_COMP_EP0_BUFSIZ;
+		} else {
+			return -EINVAL;
+		}
+	}
+	return acc_ctrlrequest(cdev, ctrl);
+}
+EXPORT_SYMBOL_GPL(acc_ctrlrequest_composite);
+
 static int
 __acc_function_bind(struct usb_configuration *c,
 			struct usb_function *f, bool configfs)
 {
 	struct usb_composite_dev *cdev = c->cdev;
+	struct usb_string *us;
 	struct acc_dev	*dev = func_to_dev(f);
 	int			id;
 	int			ret;
@@ -1088,13 +1110,11 @@
 	DBG(cdev, "acc_function_bind dev: %p\n", dev);
 
 	if (configfs) {
-		if (acc_string_defs[INTERFACE_STRING_INDEX].id == 0) {
-			ret = usb_string_id(c->cdev);
-			if (ret < 0)
-				return ret;
-			acc_string_defs[INTERFACE_STRING_INDEX].id = ret;
-			acc_interface_desc.iInterface = ret;
-		}
+		us = usb_gstrings_attach(cdev, acc_strings, ARRAY_SIZE(acc_string_defs));
+		if (IS_ERR(us))
+			return PTR_ERR(us);
+		ret = us[INTERFACE_STRING_INDEX].id;
+		acc_interface_desc.iInterface = ret;
 		dev->cdev = c->cdev;
 	}
 	ret = hid_register_driver(&acc_hid_driver);
diff --git a/drivers/usb/gadget/function/uvc_configfs.c b/drivers/usb/gadget/function/uvc_configfs.c
index 4303a32..76cb60d 100644
--- a/drivers/usb/gadget/function/uvc_configfs.c
+++ b/drivers/usb/gadget/function/uvc_configfs.c
@@ -1512,7 +1512,7 @@
 UVCG_UNCOMPRESSED_ATTR(b_default_frame_index, bDefaultFrameIndex, 8);
 UVCG_UNCOMPRESSED_ATTR_RO(b_aspect_ratio_x, bAspectRatioX, 8);
 UVCG_UNCOMPRESSED_ATTR_RO(b_aspect_ratio_y, bAspectRatioY, 8);
-UVCG_UNCOMPRESSED_ATTR_RO(bm_interface_flags, bmInterfaceFlags, 8);
+UVCG_UNCOMPRESSED_ATTR_RO(bm_interlace_flags, bmInterlaceFlags, 8);
 
 #undef UVCG_UNCOMPRESSED_ATTR
 #undef UVCG_UNCOMPRESSED_ATTR_RO
@@ -1541,7 +1541,7 @@
 	&uvcg_uncompressed_attr_b_default_frame_index,
 	&uvcg_uncompressed_attr_b_aspect_ratio_x,
 	&uvcg_uncompressed_attr_b_aspect_ratio_y,
-	&uvcg_uncompressed_attr_bm_interface_flags,
+	&uvcg_uncompressed_attr_bm_interlace_flags,
 	&uvcg_uncompressed_attr_bma_controls,
 	NULL,
 };
@@ -1574,7 +1574,7 @@
 	h->desc.bDefaultFrameIndex	= 1;
 	h->desc.bAspectRatioX		= 0;
 	h->desc.bAspectRatioY		= 0;
-	h->desc.bmInterfaceFlags	= 0;
+	h->desc.bmInterlaceFlags	= 0;
 	h->desc.bCopyProtect		= 0;
 
 	INIT_LIST_HEAD(&h->fmt.frames);
@@ -1700,7 +1700,7 @@
 UVCG_MJPEG_ATTR_RO(bm_flags, bmFlags, 8);
 UVCG_MJPEG_ATTR_RO(b_aspect_ratio_x, bAspectRatioX, 8);
 UVCG_MJPEG_ATTR_RO(b_aspect_ratio_y, bAspectRatioY, 8);
-UVCG_MJPEG_ATTR_RO(bm_interface_flags, bmInterfaceFlags, 8);
+UVCG_MJPEG_ATTR_RO(bm_interlace_flags, bmInterlaceFlags, 8);
 
 #undef UVCG_MJPEG_ATTR
 #undef UVCG_MJPEG_ATTR_RO
@@ -1728,7 +1728,7 @@
 	&uvcg_mjpeg_attr_bm_flags,
 	&uvcg_mjpeg_attr_b_aspect_ratio_x,
 	&uvcg_mjpeg_attr_b_aspect_ratio_y,
-	&uvcg_mjpeg_attr_bm_interface_flags,
+	&uvcg_mjpeg_attr_bm_interlace_flags,
 	&uvcg_mjpeg_attr_bma_controls,
 	NULL,
 };
@@ -1755,7 +1755,7 @@
 	h->desc.bDefaultFrameIndex	= 1;
 	h->desc.bAspectRatioX		= 0;
 	h->desc.bAspectRatioY		= 0;
-	h->desc.bmInterfaceFlags	= 0;
+	h->desc.bmInterlaceFlags	= 0;
 	h->desc.bCopyProtect		= 0;
 
 	INIT_LIST_HEAD(&h->fmt.frames);
diff --git a/drivers/usb/gadget/legacy/webcam.c b/drivers/usb/gadget/legacy/webcam.c
index e9b5846..c06dd1a 100644
--- a/drivers/usb/gadget/legacy/webcam.c
+++ b/drivers/usb/gadget/legacy/webcam.c
@@ -171,7 +171,7 @@
 	.bDefaultFrameIndex	= 1,
 	.bAspectRatioX		= 0,
 	.bAspectRatioY		= 0,
-	.bmInterfaceFlags	= 0,
+	.bmInterlaceFlags	= 0,
 	.bCopyProtect		= 0,
 };
 
@@ -222,7 +222,7 @@
 	.bDefaultFrameIndex	= 1,
 	.bAspectRatioX		= 0,
 	.bAspectRatioY		= 0,
-	.bmInterfaceFlags	= 0,
+	.bmInterlaceFlags	= 0,
 	.bCopyProtect		= 0,
 };
 
diff --git a/fs/binfmt_elf.c b/fs/binfmt_elf.c
index 30379c3..ebc4590 100644
--- a/fs/binfmt_elf.c
+++ b/fs/binfmt_elf.c
@@ -2182,7 +2182,7 @@
 	 * The number of segs are recored into ELF header as 16bit value.
 	 * Please check DEFAULT_MAX_MAP_COUNT definition when you modify here.
 	 */
-	segs = cprm->vma_count + elf_core_extra_phdrs();
+	segs = cprm->vma_count + elf_core_extra_phdrs(cprm);
 
 	/* for notes section */
 	segs++;
@@ -2222,7 +2222,7 @@
 	dataoff = offset = roundup(offset, ELF_EXEC_PAGESIZE);
 
 	offset += cprm->vma_data_size;
-	offset += elf_core_extra_data_size();
+	offset += elf_core_extra_data_size(cprm);
 	e_shoff = offset;
 
 	if (e_phnum == PN_XNUM) {
diff --git a/fs/binfmt_elf_fdpic.c b/fs/binfmt_elf_fdpic.c
index c316931..766e5e2 100644
--- a/fs/binfmt_elf_fdpic.c
+++ b/fs/binfmt_elf_fdpic.c
@@ -1509,7 +1509,7 @@
 	tmp->next = thread_list;
 	thread_list = tmp;
 
-	segs = cprm->vma_count + elf_core_extra_phdrs();
+	segs = cprm->vma_count + elf_core_extra_phdrs(cprm);
 
 	/* for notes section */
 	segs++;
@@ -1555,7 +1555,7 @@
 	dataoff = offset = roundup(offset, ELF_EXEC_PAGESIZE);
 
 	offset += cprm->vma_data_size;
-	offset += elf_core_extra_data_size();
+	offset += elf_core_extra_data_size(cprm);
 	e_shoff = offset;
 
 	if (e_phnum == PN_XNUM) {
diff --git a/fs/erofs/Kconfig b/fs/erofs/Kconfig
index f57255a..dd99f06 100644
--- a/fs/erofs/Kconfig
+++ b/fs/erofs/Kconfig
@@ -98,3 +98,21 @@
 	  systems will be readable without selecting this option.
 
 	  If unsure, say N.
+
+config EROFS_FS_PCPU_KTHREAD
+	bool "EROFS per-cpu decompression kthread workers"
+	depends on EROFS_FS_ZIP
+	help
+	  Saying Y here enables per-CPU kthread workers pool to carry out
+	  async decompression for low latencies on some architectures.
+
+	  If unsure, say N.
+
+config EROFS_FS_PCPU_KTHREAD_HIPRI
+	bool "EROFS high priority per-CPU kthread workers"
+	depends on EROFS_FS_ZIP && EROFS_FS_PCPU_KTHREAD
+	help
+	  This permits EROFS to configure per-CPU kthread workers to run
+	  at higher priority.
+
+	  If unsure, say N.
diff --git a/fs/erofs/zdata.c b/fs/erofs/zdata.c
index a634922..6b5bb7c 100644
--- a/fs/erofs/zdata.c
+++ b/fs/erofs/zdata.c
@@ -6,7 +6,7 @@
 #include "zdata.h"
 #include "compress.h"
 #include <linux/prefetch.h>
-
+#include <linux/cpuhotplug.h>
 #include <trace/events/erofs.h>
 
 /*
@@ -117,24 +117,128 @@
 
 static struct workqueue_struct *z_erofs_workqueue __read_mostly;
 
-void z_erofs_exit_zip_subsystem(void)
+#ifdef CONFIG_EROFS_FS_PCPU_KTHREAD
+static struct kthread_worker __rcu **z_erofs_pcpu_workers;
+
+static void erofs_destroy_percpu_workers(void)
 {
-	destroy_workqueue(z_erofs_workqueue);
-	z_erofs_destroy_pcluster_pool();
+	struct kthread_worker *worker;
+	unsigned int cpu;
+
+	for_each_possible_cpu(cpu) {
+		worker = rcu_dereference_protected(
+					z_erofs_pcpu_workers[cpu], 1);
+		rcu_assign_pointer(z_erofs_pcpu_workers[cpu], NULL);
+		if (worker)
+			kthread_destroy_worker(worker);
+	}
+	kfree(z_erofs_pcpu_workers);
 }
 
-static inline int z_erofs_init_workqueue(void)
+static struct kthread_worker *erofs_init_percpu_worker(int cpu)
 {
-	const unsigned int onlinecpus = num_possible_cpus();
+	struct kthread_worker *worker =
+		kthread_create_worker_on_cpu(cpu, 0, "erofs_worker/%u", cpu);
 
-	/*
-	 * no need to spawn too many threads, limiting threads could minimum
-	 * scheduling overhead, perhaps per-CPU threads should be better?
-	 */
-	z_erofs_workqueue = alloc_workqueue("erofs_unzipd",
-					    WQ_UNBOUND | WQ_HIGHPRI,
-					    onlinecpus + onlinecpus / 4);
-	return z_erofs_workqueue ? 0 : -ENOMEM;
+	if (IS_ERR(worker))
+		return worker;
+	if (IS_ENABLED(CONFIG_EROFS_FS_PCPU_KTHREAD_HIPRI))
+		sched_set_fifo_low(worker->task);
+	else
+		sched_set_normal(worker->task, 0);
+	return worker;
+}
+
+static int erofs_init_percpu_workers(void)
+{
+	struct kthread_worker *worker;
+	unsigned int cpu;
+
+	z_erofs_pcpu_workers = kcalloc(num_possible_cpus(),
+			sizeof(struct kthread_worker *), GFP_ATOMIC);
+	if (!z_erofs_pcpu_workers)
+		return -ENOMEM;
+
+	for_each_online_cpu(cpu) {	/* could miss cpu{off,on}line? */
+		worker = erofs_init_percpu_worker(cpu);
+		if (!IS_ERR(worker))
+			rcu_assign_pointer(z_erofs_pcpu_workers[cpu], worker);
+	}
+	return 0;
+}
+#else
+static inline void erofs_destroy_percpu_workers(void) {}
+static inline int erofs_init_percpu_workers(void) { return 0; }
+#endif
+
+#if defined(CONFIG_HOTPLUG_CPU) && defined(CONFIG_EROFS_FS_PCPU_KTHREAD)
+static DEFINE_SPINLOCK(z_erofs_pcpu_worker_lock);
+static enum cpuhp_state erofs_cpuhp_state;
+
+static int erofs_cpu_online(unsigned int cpu)
+{
+	struct kthread_worker *worker, *old;
+
+	worker = erofs_init_percpu_worker(cpu);
+	if (IS_ERR(worker))
+		return PTR_ERR(worker);
+
+	spin_lock(&z_erofs_pcpu_worker_lock);
+	old = rcu_dereference_protected(z_erofs_pcpu_workers[cpu],
+			lockdep_is_held(&z_erofs_pcpu_worker_lock));
+	if (!old)
+		rcu_assign_pointer(z_erofs_pcpu_workers[cpu], worker);
+	spin_unlock(&z_erofs_pcpu_worker_lock);
+	if (old)
+		kthread_destroy_worker(worker);
+	return 0;
+}
+
+static int erofs_cpu_offline(unsigned int cpu)
+{
+	struct kthread_worker *worker;
+
+	spin_lock(&z_erofs_pcpu_worker_lock);
+	worker = rcu_dereference_protected(z_erofs_pcpu_workers[cpu],
+			lockdep_is_held(&z_erofs_pcpu_worker_lock));
+	rcu_assign_pointer(z_erofs_pcpu_workers[cpu], NULL);
+	spin_unlock(&z_erofs_pcpu_worker_lock);
+
+	synchronize_rcu();
+	if (worker)
+		kthread_destroy_worker(worker);
+	return 0;
+}
+
+static int erofs_cpu_hotplug_init(void)
+{
+	int state;
+
+	state = cpuhp_setup_state_nocalls(CPUHP_AP_ONLINE_DYN,
+			"fs/erofs:online", erofs_cpu_online, erofs_cpu_offline);
+	if (state < 0)
+		return state;
+
+	erofs_cpuhp_state = state;
+	return 0;
+}
+
+static void erofs_cpu_hotplug_destroy(void)
+{
+	if (erofs_cpuhp_state)
+		cpuhp_remove_state_nocalls(erofs_cpuhp_state);
+}
+#else /* !CONFIG_HOTPLUG_CPU || !CONFIG_EROFS_FS_PCPU_KTHREAD */
+static inline int erofs_cpu_hotplug_init(void) { return 0; }
+static inline void erofs_cpu_hotplug_destroy(void) {}
+#endif
+
+void z_erofs_exit_zip_subsystem(void)
+{
+	erofs_cpu_hotplug_destroy();
+	erofs_destroy_percpu_workers();
+	destroy_workqueue(z_erofs_workqueue);
+	z_erofs_destroy_pcluster_pool();
 }
 
 int __init z_erofs_init_zip_subsystem(void)
@@ -142,10 +246,31 @@
 	int err = z_erofs_create_pcluster_pool();
 
 	if (err)
-		return err;
-	err = z_erofs_init_workqueue();
+		goto out_error_pcluster_pool;
+
+	z_erofs_workqueue = alloc_workqueue("erofs_worker",
+			WQ_UNBOUND | WQ_HIGHPRI, num_possible_cpus());
+	if (!z_erofs_workqueue) {
+		err = -ENOMEM;
+		goto out_error_workqueue_init;
+	}
+
+	err = erofs_init_percpu_workers();
 	if (err)
-		z_erofs_destroy_pcluster_pool();
+		goto out_error_pcpu_worker;
+
+	err = erofs_cpu_hotplug_init();
+	if (err < 0)
+		goto out_error_cpuhp_init;
+	return err;
+
+out_error_cpuhp_init:
+	erofs_destroy_percpu_workers();
+out_error_pcpu_worker:
+	destroy_workqueue(z_erofs_workqueue);
+out_error_workqueue_init:
+	z_erofs_destroy_pcluster_pool();
+out_error_pcluster_pool:
 	return err;
 }
 
@@ -763,6 +888,12 @@
 }
 
 static void z_erofs_decompressqueue_work(struct work_struct *work);
+#ifdef CONFIG_EROFS_FS_PCPU_KTHREAD
+static void z_erofs_decompressqueue_kthread_work(struct kthread_work *work)
+{
+	z_erofs_decompressqueue_work((struct work_struct *)work);
+}
+#endif
 static void z_erofs_decompress_kickoff(struct z_erofs_decompressqueue *io,
 				       bool sync, int bios)
 {
@@ -780,7 +911,22 @@
 		return;
 	/* Use workqueue and sync decompression for atomic contexts only */
 	if (in_atomic() || irqs_disabled()) {
+#ifdef CONFIG_EROFS_FS_PCPU_KTHREAD
+		struct kthread_worker *worker;
+
+		rcu_read_lock();
+		worker = rcu_dereference(
+				z_erofs_pcpu_workers[raw_smp_processor_id()]);
+		if (!worker) {
+			INIT_WORK(&io->u.work, z_erofs_decompressqueue_work);
+			queue_work(z_erofs_workqueue, &io->u.work);
+		} else {
+			kthread_queue_work(worker, &io->u.kthread_work);
+		}
+		rcu_read_unlock();
+#else
 		queue_work(z_erofs_workqueue, &io->u.work);
+#endif
 		sbi->opt.readahead_sync_decompress = true;
 		return;
 	}
@@ -1049,7 +1195,6 @@
 
 	DBG_BUGON(bgq->head == Z_EROFS_PCLUSTER_TAIL_CLOSED);
 	z_erofs_decompress_queue(bgq, &pagepool);
-
 	erofs_release_pages(&pagepool);
 	kvfree(bgq);
 }
@@ -1179,7 +1324,12 @@
 			*fg = true;
 			goto fg_out;
 		}
+#ifdef CONFIG_EROFS_FS_PCPU_KTHREAD
+		kthread_init_work(&q->u.kthread_work,
+				  z_erofs_decompressqueue_kthread_work);
+#else
 		INIT_WORK(&q->u.work, z_erofs_decompressqueue_work);
+#endif
 	} else {
 fg_out:
 		q = fgq;
@@ -1330,7 +1480,7 @@
 
 	/*
 	 * although background is preferred, no one is pending for submission.
-	 * don't issue workqueue for decompression but drop it directly instead.
+	 * don't issue decompression but drop it directly instead.
 	 */
 	if (!*force_fg && !nr_bios) {
 		kvfree(q[JQ_SUBMIT]);
diff --git a/fs/erofs/zdata.h b/fs/erofs/zdata.h
index 5e9a0eb..02e26e1 100644
--- a/fs/erofs/zdata.h
+++ b/fs/erofs/zdata.h
@@ -6,6 +6,7 @@
 #ifndef __EROFS_FS_ZDATA_H
 #define __EROFS_FS_ZDATA_H
 
+#include <linux/kthread.h>
 #include "internal.h"
 #include "zpvec.h"
 
@@ -91,6 +92,7 @@
 	union {
 		struct completion done;
 		struct work_struct work;
+		struct kthread_work kthread_work;
 	} u;
 };
 
diff --git a/fs/exec.c b/fs/exec.c
index d581d25..3ce0c74 100644
--- a/fs/exec.c
+++ b/fs/exec.c
@@ -1016,7 +1016,6 @@
 	active_mm = tsk->active_mm;
 	tsk->active_mm = mm;
 	tsk->mm = mm;
-	lru_gen_add_mm(mm);
 	/*
 	 * This prevents preemption while active_mm is being loaded and
 	 * it and mm are being updated, which could cause problems for
@@ -1030,6 +1029,7 @@
 	if (IS_ENABLED(CONFIG_ARCH_WANT_IRQS_OFF_ACTIVATE_MM))
 		local_irq_enable();
 	tsk->mm->vmacache_seqnum = 0;
+	lru_gen_add_mm(mm);
 	vmacache_flush(tsk);
 	task_unlock(tsk);
 	lru_gen_use_mm(mm);
diff --git a/fs/ext4/block_validity.c b/fs/ext4/block_validity.c
index 4666b55..5504f72 100644
--- a/fs/ext4/block_validity.c
+++ b/fs/ext4/block_validity.c
@@ -292,15 +292,10 @@
 		call_rcu(&system_blks->rcu, ext4_destroy_system_zone);
 }
 
-/*
- * Returns 1 if the passed-in block region (start_blk,
- * start_blk+count) is valid; 0 if some part of the block region
- * overlaps with some other filesystem metadata blocks.
- */
-int ext4_inode_block_valid(struct inode *inode, ext4_fsblk_t start_blk,
-			  unsigned int count)
+int ext4_sb_block_valid(struct super_block *sb, struct inode *inode,
+				ext4_fsblk_t start_blk, unsigned int count)
 {
-	struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb);
+	struct ext4_sb_info *sbi = EXT4_SB(sb);
 	struct ext4_system_blocks *system_blks;
 	struct ext4_system_zone *entry;
 	struct rb_node *n;
@@ -329,7 +324,9 @@
 		else if (start_blk >= (entry->start_blk + entry->count))
 			n = n->rb_right;
 		else {
-			ret = (entry->ino == inode->i_ino);
+			ret = 0;
+			if (inode)
+				ret = (entry->ino == inode->i_ino);
 			break;
 		}
 	}
@@ -338,6 +335,17 @@
 	return ret;
 }
 
+/*
+ * Returns 1 if the passed-in block region (start_blk,
+ * start_blk+count) is valid; 0 if some part of the block region
+ * overlaps with some other filesystem metadata blocks.
+ */
+int ext4_inode_block_valid(struct inode *inode, ext4_fsblk_t start_blk,
+			  unsigned int count)
+{
+	return ext4_sb_block_valid(inode->i_sb, inode, start_blk, count);
+}
+
 int ext4_check_blockref(const char *function, unsigned int line,
 			struct inode *inode, __le32 *p, unsigned int max)
 {
diff --git a/fs/ext4/ext4.h b/fs/ext4/ext4.h
index bc209f3..80f0942 100644
--- a/fs/ext4/ext4.h
+++ b/fs/ext4/ext4.h
@@ -3698,6 +3698,9 @@
 				  unsigned int count);
 extern int ext4_check_blockref(const char *, unsigned int,
 			       struct inode *, __le32 *, unsigned int);
+extern int ext4_sb_block_valid(struct super_block *sb, struct inode *inode,
+				ext4_fsblk_t start_blk, unsigned int count);
+
 
 /* extents.c */
 struct ext4_ext_path;
diff --git a/fs/ext4/fsmap.c b/fs/ext4/fsmap.c
index 4493ef0..cdf9bfe 100644
--- a/fs/ext4/fsmap.c
+++ b/fs/ext4/fsmap.c
@@ -486,6 +486,8 @@
 		keys[0].fmr_physical = bofs;
 	if (keys[1].fmr_physical >= eofs)
 		keys[1].fmr_physical = eofs - 1;
+	if (keys[1].fmr_physical < keys[0].fmr_physical)
+		return 0;
 	start_fsb = keys[0].fmr_physical;
 	end_fsb = keys[1].fmr_physical;
 
diff --git a/fs/ext4/mballoc.c b/fs/ext4/mballoc.c
index 0c7498a..e6718bf 100644
--- a/fs/ext4/mballoc.c
+++ b/fs/ext4/mballoc.c
@@ -5888,7 +5888,8 @@
 }
 
 /**
- * ext4_free_blocks() -- Free given blocks and update quota
+ * ext4_mb_clear_bb() -- helper function for freeing blocks.
+ *			Used by ext4_free_blocks()
  * @handle:		handle for this transaction
  * @inode:		inode
  * @bh:			optional buffer of the block to be freed
@@ -5896,9 +5897,9 @@
  * @count:		number of blocks to be freed
  * @flags:		flags used by ext4_free_blocks
  */
-void ext4_free_blocks(handle_t *handle, struct inode *inode,
-		      struct buffer_head *bh, ext4_fsblk_t block,
-		      unsigned long count, int flags)
+static void ext4_mb_clear_bb(handle_t *handle, struct inode *inode,
+			       ext4_fsblk_t block, unsigned long count,
+			       int flags)
 {
 	struct buffer_head *bitmap_bh = NULL;
 	struct super_block *sb = inode->i_sb;
@@ -5915,79 +5916,14 @@
 
 	sbi = EXT4_SB(sb);
 
-	if (sbi->s_mount_state & EXT4_FC_REPLAY) {
-		ext4_free_blocks_simple(inode, block, count);
-		return;
-	}
-
-	might_sleep();
-	if (bh) {
-		if (block)
-			BUG_ON(block != bh->b_blocknr);
-		else
-			block = bh->b_blocknr;
-	}
-
 	if (!(flags & EXT4_FREE_BLOCKS_VALIDATED) &&
 	    !ext4_inode_block_valid(inode, block, count)) {
-		ext4_error(sb, "Freeing blocks not in datazone - "
-			   "block = %llu, count = %lu", block, count);
+		ext4_error(sb, "Freeing blocks in system zone - "
+			   "Block = %llu, count = %lu", block, count);
+		/* err = 0. ext4_std_error should be a no op */
 		goto error_return;
 	}
-
-	ext4_debug("freeing block %llu\n", block);
-	trace_ext4_free_blocks(inode, block, count, flags);
-
-	if (bh && (flags & EXT4_FREE_BLOCKS_FORGET)) {
-		BUG_ON(count > 1);
-
-		ext4_forget(handle, flags & EXT4_FREE_BLOCKS_METADATA,
-			    inode, bh, block);
-	}
-
-	/*
-	 * If the extent to be freed does not begin on a cluster
-	 * boundary, we need to deal with partial clusters at the
-	 * beginning and end of the extent.  Normally we will free
-	 * blocks at the beginning or the end unless we are explicitly
-	 * requested to avoid doing so.
-	 */
-	overflow = EXT4_PBLK_COFF(sbi, block);
-	if (overflow) {
-		if (flags & EXT4_FREE_BLOCKS_NOFREE_FIRST_CLUSTER) {
-			overflow = sbi->s_cluster_ratio - overflow;
-			block += overflow;
-			if (count > overflow)
-				count -= overflow;
-			else
-				return;
-		} else {
-			block -= overflow;
-			count += overflow;
-		}
-	}
-	overflow = EXT4_LBLK_COFF(sbi, count);
-	if (overflow) {
-		if (flags & EXT4_FREE_BLOCKS_NOFREE_LAST_CLUSTER) {
-			if (count > overflow)
-				count -= overflow;
-			else
-				return;
-		} else
-			count += sbi->s_cluster_ratio - overflow;
-	}
-
-	if (!bh && (flags & EXT4_FREE_BLOCKS_FORGET)) {
-		int i;
-		int is_metadata = flags & EXT4_FREE_BLOCKS_METADATA;
-
-		for (i = 0; i < count; i++) {
-			cond_resched();
-			if (is_metadata)
-				bh = sb_find_get_block(inode->i_sb, block + i);
-			ext4_forget(handle, is_metadata, inode, bh, block + i);
-		}
-	}
+	flags |= EXT4_FREE_BLOCKS_VALIDATED;
 
 do_more:
 	overflow = 0;
@@ -6005,6 +5941,8 @@
 		overflow = EXT4_C2B(sbi, bit) + count -
 			EXT4_BLOCKS_PER_GROUP(sb);
 		count -= overflow;
+		/* The range changed so it's no longer validated */
+		flags &= ~EXT4_FREE_BLOCKS_VALIDATED;
 	}
 	count_clusters = EXT4_NUM_B2C(sbi, count);
 	bitmap_bh = ext4_read_block_bitmap(sb, block_group);
@@ -6019,13 +5957,8 @@
 		goto error_return;
 	}
 
-	if (in_range(ext4_block_bitmap(sb, gdp), block, count) ||
-	    in_range(ext4_inode_bitmap(sb, gdp), block, count) ||
-	    in_range(block, ext4_inode_table(sb, gdp),
-		     sbi->s_itb_per_group) ||
-	    in_range(block + count - 1, ext4_inode_table(sb, gdp),
-		     sbi->s_itb_per_group)) {
-
+	if (!(flags & EXT4_FREE_BLOCKS_VALIDATED) &&
+	    !ext4_inode_block_valid(inode, block, count)) {
 		ext4_error(sb, "Freeing blocks in system zone - "
 			   "Block = %llu, count = %lu", block, count);
 		/* err = 0. ext4_std_error should be a no op */
@@ -6096,7 +6029,7 @@
 						 NULL);
 			if (err && err != -EOPNOTSUPP)
 				ext4_msg(sb, KERN_WARNING, "discard request in"
-					 " group:%d block:%d count:%lu failed"
+					 " group:%u block:%d count:%lu failed"
 					 " with %d", block_group, bit, count,
 					 err);
 		} else
@@ -6148,6 +6081,8 @@
 		block += count;
 		count = overflow;
 		put_bh(bitmap_bh);
+		/* The range changed so it's no longer validated */
+		flags &= ~EXT4_FREE_BLOCKS_VALIDATED;
 		goto do_more;
 	}
 error_return:
@@ -6157,6 +6092,108 @@
 }
 
 /**
+ * ext4_free_blocks() -- Free given blocks and update quota
+ * @handle:		handle for this transaction
+ * @inode:		inode
+ * @bh:			optional buffer of the block to be freed
+ * @block:		starting physical block to be freed
+ * @count:		number of blocks to be freed
+ * @flags:		flags used by ext4_free_blocks
+ */
+void ext4_free_blocks(handle_t *handle, struct inode *inode,
+		      struct buffer_head *bh, ext4_fsblk_t block,
+		      unsigned long count, int flags)
+{
+	struct super_block *sb = inode->i_sb;
+	unsigned int overflow;
+	struct ext4_sb_info *sbi;
+
+	sbi = EXT4_SB(sb);
+
+	if (sbi->s_mount_state & EXT4_FC_REPLAY) {
+		ext4_free_blocks_simple(inode, block, count);
+		return;
+	}
+
+	might_sleep();
+	if (bh) {
+		if (block)
+			BUG_ON(block != bh->b_blocknr);
+		else
+			block = bh->b_blocknr;
+	}
+
+	if (!(flags & EXT4_FREE_BLOCKS_VALIDATED) &&
+	    !ext4_inode_block_valid(inode, block, count)) {
+		ext4_error(sb, "Freeing blocks not in datazone - "
+			   "block = %llu, count = %lu", block, count);
+		return;
+	}
+	flags |= EXT4_FREE_BLOCKS_VALIDATED;
+
+	ext4_debug("freeing block %llu\n", block);
+	trace_ext4_free_blocks(inode, block, count, flags);
+
+	if (bh && (flags & EXT4_FREE_BLOCKS_FORGET)) {
+		BUG_ON(count > 1);
+
+		ext4_forget(handle, flags & EXT4_FREE_BLOCKS_METADATA,
+			    inode, bh, block);
+	}
+
+	/*
+	 * If the extent to be freed does not begin on a cluster
+	 * boundary, we need to deal with partial clusters at the
+	 * beginning and end of the extent.  Normally we will free
+	 * blocks at the beginning or the end unless we are explicitly
+	 * requested to avoid doing so.
+	 */
+	overflow = EXT4_PBLK_COFF(sbi, block);
+	if (overflow) {
+		if (flags & EXT4_FREE_BLOCKS_NOFREE_FIRST_CLUSTER) {
+			overflow = sbi->s_cluster_ratio - overflow;
+			block += overflow;
+			if (count > overflow)
+				count -= overflow;
+			else
+				return;
+		} else {
+			block -= overflow;
+			count += overflow;
+		}
+		/* The range changed so it's no longer validated */
+		flags &= ~EXT4_FREE_BLOCKS_VALIDATED;
+	}
+	overflow = EXT4_LBLK_COFF(sbi, count);
+	if (overflow) {
+		if (flags & EXT4_FREE_BLOCKS_NOFREE_LAST_CLUSTER) {
+			if (count > overflow)
+				count -= overflow;
+			else
+				return;
+		} else
+			count += sbi->s_cluster_ratio - overflow;
+		/* The range changed so it's no longer validated */
+		flags &= ~EXT4_FREE_BLOCKS_VALIDATED;
+	}
+
+	if (!bh && (flags & EXT4_FREE_BLOCKS_FORGET)) {
+		int i;
+		int is_metadata = flags & EXT4_FREE_BLOCKS_METADATA;
+
+		for (i = 0; i < count; i++) {
+			cond_resched();
+			if (is_metadata)
+				bh = sb_find_get_block(inode->i_sb, block + i);
+			ext4_forget(handle, is_metadata, inode, bh, block + i);
+		}
+	}
+
+	ext4_mb_clear_bb(handle, inode, block, count, flags);
+	return;
+}
+
+/**
  * ext4_group_add_blocks() -- Add given blocks to an existing group
  * @handle:			handle to this transaction
  * @sb:				super block
@@ -6212,11 +6249,7 @@
 		goto error_return;
 	}
 
-	if (in_range(ext4_block_bitmap(sb, desc), block, count) ||
-	    in_range(ext4_inode_bitmap(sb, desc), block, count) ||
-	    in_range(block, ext4_inode_table(sb, desc), sbi->s_itb_per_group) ||
-	    in_range(block + count - 1, ext4_inode_table(sb, desc),
-		     sbi->s_itb_per_group)) {
+	if (!ext4_sb_block_valid(sb, NULL, block, count)) {
 		ext4_error(sb, "Adding blocks in system zones - "
 			   "Block = %llu, count = %lu",
 			   block, count);
diff --git a/fs/ext4/xattr.c b/fs/ext4/xattr.c
index b92da41..d6edf38 100644
--- a/fs/ext4/xattr.c
+++ b/fs/ext4/xattr.c
@@ -1422,6 +1422,13 @@
 	uid_t owner[2] = { i_uid_read(inode), i_gid_read(inode) };
 	int err;
 
+	if (inode->i_sb->s_root == NULL) {
+		ext4_warning(inode->i_sb,
+			     "refuse to create EA inode when umounting");
+		WARN_ON(1);
+		return ERR_PTR(-EINVAL);
+	}
+
 	/*
 	 * Let the next inode be the goal, so we try and allocate the EA inode
 	 * in the same group, or nearby one.
@@ -2549,9 +2556,8 @@
 
 	is = kzalloc(sizeof(struct ext4_xattr_ibody_find), GFP_NOFS);
 	bs = kzalloc(sizeof(struct ext4_xattr_block_find), GFP_NOFS);
-	buffer = kvmalloc(value_size, GFP_NOFS);
 	b_entry_name = kmalloc(entry->e_name_len + 1, GFP_NOFS);
-	if (!is || !bs || !buffer || !b_entry_name) {
+	if (!is || !bs || !b_entry_name) {
 		error = -ENOMEM;
 		goto out;
 	}
@@ -2563,12 +2569,18 @@
 
 	/* Save the entry name and the entry value */
 	if (entry->e_value_inum) {
+		buffer = kvmalloc(value_size, GFP_NOFS);
+		if (!buffer) {
+			error = -ENOMEM;
+			goto out;
+		}
+
 		error = ext4_xattr_inode_get(inode, entry, buffer, value_size);
 		if (error)
 			goto out;
 	} else {
 		size_t value_offs = le16_to_cpu(entry->e_value_offs);
-		memcpy(buffer, (void *)IFIRST(header) + value_offs, value_size);
+		buffer = (void *)IFIRST(header) + value_offs;
 	}
 
 	memcpy(b_entry_name, entry->e_name, entry->e_name_len);
@@ -2583,25 +2595,26 @@
 	if (error)
 		goto out;
 
-	/* Remove the chosen entry from the inode */
-	error = ext4_xattr_ibody_set(handle, inode, &i, is);
-	if (error)
-		goto out;
-
 	i.value = buffer;
 	i.value_len = value_size;
 	error = ext4_xattr_block_find(inode, &i, bs);
 	if (error)
 		goto out;
 
-	/* Add entry which was removed from the inode into the block */
+	/* Move ea entry from the inode into the block */
 	error = ext4_xattr_block_set(handle, inode, &i, bs);
 	if (error)
 		goto out;
-	error = 0;
+
+	/* Remove the chosen entry from the inode */
+	i.value = NULL;
+	i.value_len = 0;
+	error = ext4_xattr_ibody_set(handle, inode, &i, is);
+
 out:
 	kfree(b_entry_name);
-	kvfree(buffer);
+	if (entry->e_value_inum && buffer)
+		kvfree(buffer);
 	if (is)
 		brelse(is->iloc.bh);
 	if (bs)
diff --git a/fs/f2fs/gc.c b/fs/f2fs/gc.c
index b3a4e5c..e8c872d 100644
--- a/fs/f2fs/gc.c
+++ b/fs/f2fs/gc.c
@@ -92,16 +92,6 @@
 		 * invalidated soon after by user update or deletion.
 		 * So, I'd like to wait some time to collect dirty segments.
 		 */
-		if (sbi->gc_mode == GC_URGENT_HIGH) {
-			spin_lock(&sbi->gc_urgent_high_lock);
-			if (sbi->gc_urgent_high_remaining) {
-				sbi->gc_urgent_high_remaining--;
-				if (!sbi->gc_urgent_high_remaining)
-					sbi->gc_mode = GC_NORMAL;
-			}
-			spin_unlock(&sbi->gc_urgent_high_lock);
-		}
-
 		if (sbi->gc_mode == GC_URGENT_HIGH ||
 				sbi->gc_mode == GC_URGENT_MID) {
 			wait_ms = gc_th->urgent_sleep_time;
@@ -151,6 +141,15 @@
 		/* balancing f2fs's metadata periodically */
 		f2fs_balance_fs_bg(sbi, true);
 next:
+		if (sbi->gc_mode == GC_URGENT_HIGH) {
+			spin_lock(&sbi->gc_urgent_high_lock);
+			if (sbi->gc_urgent_high_remaining) {
+				sbi->gc_urgent_high_remaining--;
+				if (!sbi->gc_urgent_high_remaining)
+					sbi->gc_mode = GC_NORMAL;
+			}
+			spin_unlock(&sbi->gc_urgent_high_lock);
+		}
 		sb_end_write(sbi->sb);
 
 	} while (!kthread_should_stop());
diff --git a/fs/fuse/Kconfig b/fs/fuse/Kconfig
index 40ce9a1..d6bd90b5 100644
--- a/fs/fuse/Kconfig
+++ b/fs/fuse/Kconfig
@@ -52,3 +52,11 @@
 
 	  If you want to allow mounting a Virtio Filesystem with the "dax"
 	  option, answer Y.
+
+config FUSE_BPF
+	bool "Adds BPF to fuse"
+	depends on FUSE_FS
+	depends on BPF
+	help
+	  Extends FUSE by adding BPF to prefilter calls and potentially pass to a
+	  backing file system
diff --git a/fs/fuse/Makefile b/fs/fuse/Makefile
index d9e1b47..096bd78 100644
--- a/fs/fuse/Makefile
+++ b/fs/fuse/Makefile
@@ -10,5 +10,6 @@
 fuse-y := dev.o dir.o file.o inode.o control.o xattr.o acl.o readdir.o ioctl.o
 fuse-y += passthrough.o
 fuse-$(CONFIG_FUSE_DAX) += dax.o
+fuse-$(CONFIG_FUSE_BPF) += backing.o
 
 virtiofs-y := virtio_fs.o
diff --git a/fs/fuse/backing.c b/fs/fuse/backing.c
new file mode 100644
index 0000000..5665ff7
--- /dev/null
+++ b/fs/fuse/backing.c
@@ -0,0 +1,2473 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * FUSE-BPF: Filesystem in Userspace with BPF
+ * Copyright (c) 2021 Google LLC
+ */
+
+#include "fuse_i.h"
+
+#include <linux/fdtable.h>
+#include <linux/filter.h>
+#include <linux/fs_stack.h>
+#include <linux/namei.h>
+
+#include "../internal.h"
+
+#define FUSE_BPF_IOCB_MASK (IOCB_APPEND | IOCB_DSYNC | IOCB_HIPRI | IOCB_NOWAIT | IOCB_SYNC)
+
+struct fuse_bpf_aio_req {
+	struct kiocb iocb;
+	refcount_t ref;
+	struct kiocb *iocb_orig;
+};
+
+static struct kmem_cache *fuse_bpf_aio_request_cachep;
+
+static void fuse_stat_to_attr(struct fuse_conn *fc, struct inode *inode,
+		struct kstat *stat, struct fuse_attr *attr);
+
+static void fuse_file_accessed(struct file *dst_file, struct file *src_file)
+{
+	struct inode *dst_inode;
+	struct inode *src_inode;
+
+	if (dst_file->f_flags & O_NOATIME)
+		return;
+
+	dst_inode = file_inode(dst_file);
+	src_inode = file_inode(src_file);
+
+	if ((!timespec64_equal(&dst_inode->i_mtime, &src_inode->i_mtime) ||
+	     !timespec64_equal(&dst_inode->i_ctime, &src_inode->i_ctime))) {
+		dst_inode->i_mtime = src_inode->i_mtime;
+		dst_inode->i_ctime = src_inode->i_ctime;
+	}
+
+	touch_atime(&dst_file->f_path);
+}
+
+int fuse_open_initialize(struct fuse_bpf_args *fa, struct fuse_open_io *foio,
+			 struct inode *inode, struct file *file, bool isdir)
+{
+	foio->foi = (struct fuse_open_in) {
+		.flags = file->f_flags & ~(O_CREAT | O_EXCL | O_NOCTTY),
+	};
+
+	foio->foo = (struct fuse_open_out) {0};
+
+	*fa = (struct fuse_bpf_args) {
+		.nodeid = get_fuse_inode(inode)->nodeid,
+		.opcode = isdir ? FUSE_OPENDIR : FUSE_OPEN,
+		.in_numargs = 1,
+		.out_numargs = 1,
+		.in_args[0] = (struct fuse_bpf_in_arg) {
+			.size = sizeof(foio->foi),
+			.value = &foio->foi,
+		},
+		.out_args[0] = (struct fuse_bpf_arg) {
+			.size = sizeof(foio->foo),
+			.value = &foio->foo,
+		},
+	};
+
+	return 0;
+}
+
+int fuse_open_backing(struct fuse_bpf_args *fa,
+		      struct inode *inode, struct file *file, bool isdir)
+{
+	struct fuse_mount *fm = get_fuse_mount(inode);
+	const struct fuse_open_in *foi = fa->in_args[0].value;
+	struct fuse_file *ff;
+	int retval;
+	int mask;
+	struct fuse_dentry *fd = get_fuse_dentry(file->f_path.dentry);
+	struct file *backing_file;
+
+	ff = fuse_file_alloc(fm);
+	if (!ff)
+		return -ENOMEM;
+	file->private_data = ff;
+
+	switch (foi->flags & O_ACCMODE) {
+	case O_RDONLY:
+		mask = MAY_READ;
+		break;
+
+	case O_WRONLY:
+		mask = MAY_WRITE;
+		break;
+
+	case O_RDWR:
+		mask = MAY_READ | MAY_WRITE;
+		break;
+
+	default:
+		return -EINVAL;
+	}
+
+	retval = inode_permission(&init_user_ns,
+				  get_fuse_inode(inode)->backing_inode, mask);
+	if (retval)
+		return retval;
+
+	backing_file = dentry_open(&fd->backing_path,
+				   foi->flags,
+				   current_cred());
+
+	if (IS_ERR(backing_file)) {
+		fuse_file_free(ff);
+		file->private_data = NULL;
+		return PTR_ERR(backing_file);
+	}
+	ff->backing_file = backing_file;
+
+	return 0;
+}
+
+void *fuse_open_finalize(struct fuse_bpf_args *fa,
+		       struct inode *inode, struct file *file, bool isdir)
+{
+	struct fuse_file *ff = file->private_data;
+	struct fuse_open_out *foo = fa->out_args[0].value;
+
+	if (ff) {
+		ff->fh = foo->fh;
+		ff->nodeid = get_fuse_inode(inode)->nodeid;
+	}
+	return 0;
+}
+
+int fuse_create_open_initialize(
+		struct fuse_bpf_args *fa, struct fuse_create_open_io *fcoio,
+		struct inode *dir, struct dentry *entry,
+		struct file *file, unsigned int flags, umode_t mode)
+{
+	fcoio->fci = (struct fuse_create_in) {
+		.flags = file->f_flags & ~(O_CREAT | O_EXCL | O_NOCTTY),
+		.mode = mode,
+	};
+
+	fcoio->feo = (struct fuse_entry_out) {0};
+	fcoio->foo = (struct fuse_open_out) {0};
+
+	*fa = (struct fuse_bpf_args) {
+		.nodeid = get_node_id(dir),
+		.opcode = FUSE_CREATE,
+		.in_numargs = 2,
+		.out_numargs = 2,
+		.in_args[0] = (struct fuse_bpf_in_arg) {
+			.size = sizeof(fcoio->fci),
+			.value = &fcoio->fci,
+		},
+		.in_args[1] = (struct fuse_bpf_in_arg) {
+			.size = entry->d_name.len + 1,
+			.value = entry->d_name.name,
+		},
+		.out_args[0] = (struct fuse_bpf_arg) {
+			.size = sizeof(fcoio->feo),
+			.value = &fcoio->feo,
+		},
+		.out_args[1] = (struct fuse_bpf_arg) {
+			.size = sizeof(fcoio->foo),
+			.value = &fcoio->foo,
+		},
+	};
+
+	return 0;
+}
+
+static int fuse_open_file_backing(struct inode *inode, struct file *file)
+{
+	struct fuse_mount *fm = get_fuse_mount(inode);
+	struct dentry *entry = file->f_path.dentry;
+	struct fuse_dentry *fuse_dentry = get_fuse_dentry(entry);
+	struct fuse_file *fuse_file;
+	struct file *backing_file;
+
+	fuse_file = fuse_file_alloc(fm);
+	if (!fuse_file)
+		return -ENOMEM;
+	file->private_data = fuse_file;
+
+	backing_file = dentry_open(&fuse_dentry->backing_path, file->f_flags,
+				   current_cred());
+	if (IS_ERR(backing_file)) {
+		fuse_file_free(fuse_file);
+		file->private_data = NULL;
+		return PTR_ERR(backing_file);
+	}
+	fuse_file->backing_file = backing_file;
+
+	return 0;
+}
+
+int fuse_create_open_backing(
+		struct fuse_bpf_args *fa,
+		struct inode *dir, struct dentry *entry,
+		struct file *file, unsigned int flags, umode_t mode)
+{
+	struct fuse_inode *dir_fuse_inode = get_fuse_inode(dir);
+	struct fuse_dentry *dir_fuse_dentry = get_fuse_dentry(entry->d_parent);
+	struct dentry *backing_dentry = NULL;
+	struct inode *inode = NULL;
+	struct dentry *newent;
+	int err = 0;
+	const struct fuse_create_in *fci = fa->in_args[0].value;
+	struct inode *d_inode = entry->d_inode;
+	u64 target_nodeid = 0;
+
+	if (!dir_fuse_inode || !dir_fuse_dentry)
+		return -EIO;
+
+	inode_lock_nested(dir_fuse_inode->backing_inode, I_MUTEX_PARENT);
+	backing_dentry = lookup_one_len(fa->in_args[1].value,
+					dir_fuse_dentry->backing_path.dentry,
+					strlen(fa->in_args[1].value));
+	inode_unlock(dir_fuse_inode->backing_inode);
+
+	if (IS_ERR(backing_dentry))
+		return PTR_ERR(backing_dentry);
+
+	if (d_really_is_positive(backing_dentry)) {
+		err = -EIO;
+		goto out;
+	}
+
+	err = vfs_create(&init_user_ns,  dir_fuse_inode->backing_inode,
+			 backing_dentry, fci->mode, true);
+	if (err)
+		goto out;
+
+	if (get_fuse_dentry(entry)->backing_path.dentry)
+		path_put(&get_fuse_dentry(entry)->backing_path);
+	get_fuse_dentry(entry)->backing_path = (struct path) {
+		.mnt = dir_fuse_dentry->backing_path.mnt,
+		.dentry = backing_dentry,
+	};
+	path_get(&get_fuse_dentry(entry)->backing_path);
+
+	if (d_inode)
+		target_nodeid = get_fuse_inode(d_inode)->nodeid;
+
+	inode = fuse_iget_backing(dir->i_sb, target_nodeid,
+			get_fuse_dentry(entry)->backing_path.dentry->d_inode);
+	if (IS_ERR(inode)) {
+		err = PTR_ERR(inode);
+		goto out;
+	}
+
+	if (get_fuse_inode(inode)->bpf)
+		bpf_prog_put(get_fuse_inode(inode)->bpf);
+	get_fuse_inode(inode)->bpf = dir_fuse_inode->bpf;
+	if (get_fuse_inode(inode)->bpf)
+		bpf_prog_inc(dir_fuse_inode->bpf);
+
+	newent = d_splice_alias(inode, entry);
+	if (IS_ERR(newent)) {
+		err = PTR_ERR(newent);
+		goto out;
+	}
+
+	entry = newent ? newent : entry;
+	err = finish_open(file, entry, fuse_open_file_backing);
+
+out:
+	dput(backing_dentry);
+	return err;
+}
+
+void *fuse_create_open_finalize(
+		struct fuse_bpf_args *fa,
+		struct inode *dir, struct dentry *entry,
+		struct file *file, unsigned int flags, umode_t mode)
+{
+	struct fuse_file *ff = file->private_data;
+	struct fuse_inode *fi = get_fuse_inode(file->f_inode);
+	struct fuse_entry_out *feo = fa->out_args[0].value;
+	struct fuse_open_out *foo = fa->out_args[1].value;
+
+	if (fi)
+		fi->nodeid = feo->nodeid;
+	if (ff)
+		ff->fh = foo->fh;
+	return 0;
+}
+
+int fuse_release_initialize(struct fuse_bpf_args *fa, struct fuse_release_in *fri,
+			    struct inode *inode, struct file *file)
+{
+	struct fuse_file *fuse_file = file->private_data;
+
+	/* Always put backing file whatever bpf/userspace says */
+	fput(fuse_file->backing_file);
+
+	*fri = (struct fuse_release_in) {
+		.fh = ((struct fuse_file *)(file->private_data))->fh,
+	};
+
+	*fa = (struct fuse_bpf_args) {
+		.nodeid = get_fuse_inode(inode)->nodeid,
+		.opcode = FUSE_RELEASE,
+		.in_numargs = 1,
+		.in_args[0].size = sizeof(*fri),
+		.in_args[0].value = fri,
+	};
+
+	return 0;
+}
+
+int fuse_releasedir_initialize(struct fuse_bpf_args *fa,
+			struct fuse_release_in *fri,
+			struct inode *inode, struct file *file)
+{
+	struct fuse_file *fuse_file = file->private_data;
+
+	/* Always put backing file whatever bpf/userspace says */
+	fput(fuse_file->backing_file);
+
+	*fri = (struct fuse_release_in) {
+		.fh = ((struct fuse_file *)(file->private_data))->fh,
+	};
+
+	*fa = (struct fuse_bpf_args) {
+		.nodeid = get_fuse_inode(inode)->nodeid,
+		.opcode = FUSE_RELEASEDIR,
+		.in_numargs = 1,
+		.in_args[0].size = sizeof(*fri),
+		.in_args[0].value = fri,
+	};
+
+	return 0;
+}
+
+int fuse_release_backing(struct fuse_bpf_args *fa,
+			 struct inode *inode, struct file *file)
+{
+	return 0;
+}
+
+void *fuse_release_finalize(struct fuse_bpf_args *fa,
+			    struct inode *inode, struct file *file)
+{
+	fuse_file_free(file->private_data);
+	return NULL;
+}
+
+int fuse_flush_initialize(struct fuse_bpf_args *fa, struct fuse_flush_in *ffi,
+			   struct file *file, fl_owner_t id)
+{
+	struct fuse_file *fuse_file = file->private_data;
+
+	*ffi = (struct fuse_flush_in) {
+		.fh = fuse_file->fh,
+	};
+
+	*fa = (struct fuse_bpf_args) {
+		.nodeid = get_node_id(file->f_inode),
+		.opcode = FUSE_FLUSH,
+		.in_numargs = 1,
+		.in_args[0].size = sizeof(*ffi),
+		.in_args[0].value = ffi,
+		.flags = FUSE_BPF_FORCE,
+	};
+
+	return 0;
+}
+
+int fuse_flush_backing(struct fuse_bpf_args *fa, struct file *file, fl_owner_t id)
+{
+	struct fuse_file *fuse_file = file->private_data;
+	struct file *backing_file = fuse_file->backing_file;
+
+	if (backing_file->f_op->flush)
+		return backing_file->f_op->flush(backing_file, id);
+	return 0;
+}
+
+void *fuse_flush_finalize(struct fuse_bpf_args *fa, struct file *file, fl_owner_t id)
+{
+	return NULL;
+}
+
+int fuse_lseek_initialize(struct fuse_bpf_args *fa, struct fuse_lseek_io *flio,
+			  struct file *file, loff_t offset, int whence)
+{
+	struct fuse_file *fuse_file = file->private_data;
+
+	flio->fli = (struct fuse_lseek_in) {
+		.fh = fuse_file->fh,
+		.offset = offset,
+		.whence = whence,
+	};
+
+	*fa = (struct fuse_bpf_args) {
+		.nodeid = get_node_id(file->f_inode),
+		.opcode = FUSE_LSEEK,
+		.in_numargs = 1,
+		.in_args[0].size = sizeof(flio->fli),
+		.in_args[0].value = &flio->fli,
+		.out_numargs = 1,
+		.out_args[0].size = sizeof(flio->flo),
+		.out_args[0].value = &flio->flo,
+	};
+
+	return 0;
+}
+
+int fuse_lseek_backing(struct fuse_bpf_args *fa, struct file *file, loff_t offset, int whence)
+{
+	const struct fuse_lseek_in *fli = fa->in_args[0].value;
+	struct fuse_lseek_out *flo = fa->out_args[0].value;
+	struct fuse_file *fuse_file = file->private_data;
+	struct file *backing_file = fuse_file->backing_file;
+	loff_t ret;
+
+	/* TODO: Handle changing of the file handle */
+	if (offset == 0) {
+		if (whence == SEEK_CUR) {
+			flo->offset = file->f_pos;
+			return flo->offset;
+		}
+
+		if (whence == SEEK_SET) {
+			flo->offset = vfs_setpos(file, 0, 0);
+			return flo->offset;
+		}
+	}
+
+	inode_lock(file->f_inode);
+	backing_file->f_pos = file->f_pos;
+	ret = vfs_llseek(backing_file, fli->offset, fli->whence);
+	flo->offset = ret;
+	inode_unlock(file->f_inode);
+	return ret;
+}
+
+void *fuse_lseek_finalize(struct fuse_bpf_args *fa, struct file *file, loff_t offset, int whence)
+{
+	struct fuse_lseek_out *flo = fa->out_args[0].value;
+
+	if (!fa->error_in)
+		file->f_pos = flo->offset;
+	return ERR_PTR(flo->offset);
+}
+
+int fuse_copy_file_range_initialize(struct fuse_bpf_args *fa, struct fuse_copy_file_range_io *fcf,
+				   struct file *file_in, loff_t pos_in, struct file *file_out,
+				   loff_t pos_out, size_t len, unsigned int flags)
+{
+	struct fuse_file *fuse_file_in = file_in->private_data;
+	struct fuse_file *fuse_file_out = file_out->private_data;
+
+
+	fcf->fci = (struct fuse_copy_file_range_in) {
+		.fh_in = fuse_file_in->fh,
+		.off_in = pos_in,
+		.nodeid_out = fuse_file_out->nodeid,
+		.fh_out = fuse_file_out->fh,
+		.off_out = pos_out,
+		.len = len,
+		.flags = flags,
+	};
+
+	*fa = (struct fuse_bpf_args) {
+		.nodeid = get_node_id(file_in->f_inode),
+		.opcode = FUSE_COPY_FILE_RANGE,
+		.in_numargs = 1,
+		.in_args[0].size = sizeof(fcf->fci),
+		.in_args[0].value = &fcf->fci,
+		.out_numargs = 1,
+		.out_args[0].size = sizeof(fcf->fwo),
+		.out_args[0].value = &fcf->fwo,
+	};
+
+	return 0;
+}
+
+int fuse_copy_file_range_backing(struct fuse_bpf_args *fa, struct file *file_in, loff_t pos_in,
+				 struct file *file_out, loff_t pos_out, size_t len,
+				 unsigned int flags)
+{
+	const struct fuse_copy_file_range_in *fci = fa->in_args[0].value;
+	struct fuse_file *fuse_file_in = file_in->private_data;
+	struct file *backing_file_in = fuse_file_in->backing_file;
+	struct fuse_file *fuse_file_out = file_out->private_data;
+	struct file *backing_file_out = fuse_file_out->backing_file;
+
+	/* TODO: Handle changing of in/out files */
+	if (backing_file_out)
+		return vfs_copy_file_range(backing_file_in, fci->off_in, backing_file_out,
+					   fci->off_out, fci->len, fci->flags);
+	else
+		return generic_copy_file_range(file_in, pos_in, file_out, pos_out, len,
+					       flags);
+}
+
+void *fuse_copy_file_range_finalize(struct fuse_bpf_args *fa, struct file *file_in, loff_t pos_in,
+				    struct file *file_out, loff_t pos_out, size_t len,
+				    unsigned int flags)
+{
+	return NULL;
+}
+
+int fuse_fsync_initialize(struct fuse_bpf_args *fa, struct fuse_fsync_in *ffi,
+		   struct file *file, loff_t start, loff_t end, int datasync)
+{
+	struct fuse_file *fuse_file = file->private_data;
+
+	*ffi = (struct fuse_fsync_in) {
+		.fh = fuse_file->fh,
+		.fsync_flags = datasync ? FUSE_FSYNC_FDATASYNC : 0,
+	};
+
+	*fa = (struct fuse_bpf_args) {
+		.nodeid = get_fuse_inode(file->f_inode)->nodeid,
+		.opcode = FUSE_FSYNC,
+		.in_numargs = 1,
+		.in_args[0].size = sizeof(*ffi),
+		.in_args[0].value = ffi,
+		.flags = FUSE_BPF_FORCE,
+	};
+
+	return 0;
+}
+
+int fuse_fsync_backing(struct fuse_bpf_args *fa,
+		   struct file *file, loff_t start, loff_t end, int datasync)
+{
+	struct fuse_file *fuse_file = file->private_data;
+	struct file *backing_file = fuse_file->backing_file;
+	const struct fuse_fsync_in *ffi = fa->in_args[0].value;
+	int new_datasync = (ffi->fsync_flags & FUSE_FSYNC_FDATASYNC) ? 1 : 0;
+
+	return vfs_fsync(backing_file, new_datasync);
+}
+
+void *fuse_fsync_finalize(struct fuse_bpf_args *fa,
+		   struct file *file, loff_t start, loff_t end, int datasync)
+{
+	return NULL;
+}
+
+int fuse_dir_fsync_initialize(struct fuse_bpf_args *fa, struct fuse_fsync_in *ffi,
+		   struct file *file, loff_t start, loff_t end, int datasync)
+{
+	struct fuse_file *fuse_file = file->private_data;
+
+	*ffi = (struct fuse_fsync_in) {
+		.fh = fuse_file->fh,
+		.fsync_flags = datasync ? FUSE_FSYNC_FDATASYNC : 0,
+	};
+
+	*fa = (struct fuse_bpf_args) {
+		.nodeid = get_fuse_inode(file->f_inode)->nodeid,
+		.opcode = FUSE_FSYNCDIR,
+		.in_numargs = 1,
+		.in_args[0].size = sizeof(*ffi),
+		.in_args[0].value = ffi,
+		.flags = FUSE_BPF_FORCE,
+	};
+
+	return 0;
+}
+
+int fuse_getxattr_initialize(struct fuse_bpf_args *fa,
+		struct fuse_getxattr_io *fgio,
+		struct dentry *dentry, const char *name, void *value,
+		size_t size)
+{
+	*fgio = (struct fuse_getxattr_io) {
+		.fgi.size = size,
+	};
+
+	*fa = (struct fuse_bpf_args) {
+		.nodeid = get_fuse_inode(dentry->d_inode)->nodeid,
+		.opcode = FUSE_GETXATTR,
+		.in_numargs = 2,
+		.out_numargs = 1,
+		.in_args[0] = (struct fuse_bpf_in_arg) {
+			.size = sizeof(fgio->fgi),
+			.value = &fgio->fgi,
+		},
+		.in_args[1] = (struct fuse_bpf_in_arg) {
+			.size = strlen(name) + 1,
+			.value = name,
+		},
+		.flags = size ? FUSE_BPF_OUT_ARGVAR : 0,
+		.out_args[0].size = size ? size : sizeof(fgio->fgo),
+		.out_args[0].value = size ? value : &fgio->fgo,
+	};
+	return 0;
+}
+
+int fuse_getxattr_backing(struct fuse_bpf_args *fa,
+		struct dentry *dentry, const char *name, void *value,
+		size_t size)
+{
+	ssize_t ret = vfs_getxattr(&init_user_ns,
+				   get_fuse_dentry(dentry)->backing_path.dentry,
+				   fa->in_args[1].value, value, size);
+
+	if (fa->flags & FUSE_BPF_OUT_ARGVAR)
+		fa->out_args[0].size = ret;
+	else
+		((struct fuse_getxattr_out *)fa->out_args[0].value)->size = ret;
+
+	return 0;
+}
+
+void *fuse_getxattr_finalize(struct fuse_bpf_args *fa,
+		struct dentry *dentry, const char *name, void *value,
+		size_t size)
+{
+	struct fuse_getxattr_out *fgo;
+
+	if (fa->flags & FUSE_BPF_OUT_ARGVAR)
+		return ERR_PTR(fa->out_args[0].size);
+
+	fgo = fa->out_args[0].value;
+
+	return ERR_PTR(fgo->size);
+
+}
+
+int fuse_listxattr_initialize(struct fuse_bpf_args *fa,
+			      struct fuse_getxattr_io *fgio,
+			      struct dentry *dentry, char *list, size_t size)
+{
+	*fgio = (struct fuse_getxattr_io){
+		.fgi.size = size,
+	};
+
+	*fa = (struct fuse_bpf_args){
+		.nodeid = get_fuse_inode(dentry->d_inode)->nodeid,
+		.opcode = FUSE_LISTXATTR,
+		.in_numargs = 1,
+		.out_numargs = 1,
+		.in_args[0] =
+			(struct fuse_bpf_in_arg){
+				.size = sizeof(fgio->fgi),
+				.value = &fgio->fgi,
+			},
+		.flags = size ? FUSE_BPF_OUT_ARGVAR : 0,
+		.out_args[0].size = size ? size : sizeof(fgio->fgo),
+		.out_args[0].value = size ? (void *)list : &fgio->fgo,
+	};
+
+	return 0;
+}
+
+int fuse_listxattr_backing(struct fuse_bpf_args *fa, struct dentry *dentry,
+			   char *list, size_t size)
+{
+	ssize_t ret =
+		vfs_listxattr(get_fuse_dentry(dentry)->backing_path.dentry,
+			      list, size);
+
+	if (ret < 0)
+		return ret;
+
+	if (fa->flags & FUSE_BPF_OUT_ARGVAR)
+		fa->out_args[0].size = ret;
+	else
+		((struct fuse_getxattr_out *)fa->out_args[0].value)->size = ret;
+
+	return ret;
+}
+
+void *fuse_listxattr_finalize(struct fuse_bpf_args *fa, struct dentry *dentry,
+			      char *list, size_t size)
+{
+	struct fuse_getxattr_out *fgo;
+
+	if (fa->error_in)
+		return NULL;
+
+	if (fa->flags & FUSE_BPF_OUT_ARGVAR)
+		return ERR_PTR(fa->out_args[0].size);
+
+	fgo = fa->out_args[0].value;
+	return ERR_PTR(fgo->size);
+}
+
+int fuse_setxattr_initialize(struct fuse_bpf_args *fa,
+			     struct fuse_setxattr_in *fsxi,
+			     struct dentry *dentry, const char *name,
+			     const void *value, size_t size, int flags)
+{
+	*fsxi = (struct fuse_setxattr_in) {
+		.size = size,
+		.flags = flags,
+	};
+
+	*fa = (struct fuse_bpf_args) {
+		.nodeid = get_fuse_inode(dentry->d_inode)->nodeid,
+		.opcode = FUSE_SETXATTR,
+		.in_numargs = 3,
+		.in_args[0] = (struct fuse_bpf_in_arg) {
+			.size = sizeof(*fsxi),
+			.value = fsxi,
+		},
+		.in_args[1] = (struct fuse_bpf_in_arg) {
+			.size = strlen(name) + 1,
+			.value = name,
+		},
+		.in_args[2] = (struct fuse_bpf_in_arg) {
+			.size = size,
+			.value = value,
+		},
+	};
+
+	return 0;
+}
+
+int fuse_setxattr_backing(struct fuse_bpf_args *fa, struct dentry *dentry,
+			  const char *name, const void *value, size_t size,
+			  int flags)
+{
+	return vfs_setxattr(&init_user_ns,
+			    get_fuse_dentry(dentry)->backing_path.dentry, name,
+			    value, size, flags);
+}
+
+void *fuse_setxattr_finalize(struct fuse_bpf_args *fa, struct dentry *dentry,
+			     const char *name, const void *value, size_t size,
+			     int flags)
+{
+	return NULL;
+}
+
+int fuse_removexattr_initialize(struct fuse_bpf_args *fa,
+				struct fuse_dummy_io *unused,
+				struct dentry *dentry, const char *name)
+{
+	*fa = (struct fuse_bpf_args) {
+		.nodeid = get_fuse_inode(dentry->d_inode)->nodeid,
+		.opcode = FUSE_REMOVEXATTR,
+		.in_numargs = 1,
+		.in_args[0] = (struct fuse_bpf_in_arg) {
+			.size = strlen(name) + 1,
+			.value = name,
+		},
+	};
+
+	return 0;
+}
+
+int fuse_removexattr_backing(struct fuse_bpf_args *fa,
+			     struct dentry *dentry, const char *name)
+{
+	struct path *backing_path =
+		&get_fuse_dentry(dentry)->backing_path;
+
+	/* TODO account for changes of the name by prefilter */
+	return vfs_removexattr(&init_user_ns, backing_path->dentry, name);
+}
+
+void *fuse_removexattr_finalize(struct fuse_bpf_args *fa,
+				struct dentry *dentry, const char *name)
+{
+	return NULL;
+}
+
+static inline void fuse_bpf_aio_put(struct fuse_bpf_aio_req *aio_req)
+{
+	if (refcount_dec_and_test(&aio_req->ref))
+		kmem_cache_free(fuse_bpf_aio_request_cachep, aio_req);
+}
+
+static void fuse_bpf_aio_cleanup_handler(struct fuse_bpf_aio_req *aio_req)
+{
+	struct kiocb *iocb = &aio_req->iocb;
+	struct kiocb *iocb_orig = aio_req->iocb_orig;
+
+	if (iocb->ki_flags & IOCB_WRITE) {
+		__sb_writers_acquired(file_inode(iocb->ki_filp)->i_sb,
+				      SB_FREEZE_WRITE);
+		file_end_write(iocb->ki_filp);
+		fuse_copyattr(iocb_orig->ki_filp, iocb->ki_filp);
+	}
+	iocb_orig->ki_pos = iocb->ki_pos;
+	fuse_bpf_aio_put(aio_req);
+}
+
+static void fuse_bpf_aio_rw_complete(struct kiocb *iocb, long res, long res2)
+{
+	struct fuse_bpf_aio_req *aio_req =
+		container_of(iocb, struct fuse_bpf_aio_req, iocb);
+	struct kiocb *iocb_orig = aio_req->iocb_orig;
+
+	fuse_bpf_aio_cleanup_handler(aio_req);
+	iocb_orig->ki_complete(iocb_orig, res, res2);
+}
+
+
+int fuse_file_read_iter_initialize(
+		struct fuse_bpf_args *fa, struct fuse_file_read_iter_io *fri,
+		struct kiocb *iocb, struct iov_iter *to)
+{
+	struct file *file = iocb->ki_filp;
+	struct fuse_file *ff = file->private_data;
+
+	fri->fri = (struct fuse_read_in) {
+		.fh = ff->fh,
+		.offset = iocb->ki_pos,
+		.size = to->count,
+	};
+
+	fri->frio = (struct fuse_read_iter_out) {
+		.ret = fri->fri.size,
+	};
+
+	/* TODO we can't assume 'to' is a kvec */
+	/* TODO we also can't assume the vector has only one component */
+	*fa = (struct fuse_bpf_args) {
+		.opcode = FUSE_READ,
+		.nodeid = ff->nodeid,
+		.in_numargs = 1,
+		.in_args[0].size = sizeof(fri->fri),
+		.in_args[0].value = &fri->fri,
+		.out_numargs = 1,
+		.out_args[0].size = sizeof(fri->frio),
+		.out_args[0].value = &fri->frio,
+		/*
+		 * TODO Design this properly.
+		 * Possible approach: do not pass buf to bpf
+		 * If going to userland, do a deep copy
+		 * For extra credit, do that to/from the vector, rather than
+		 * making an extra copy in the kernel
+		 */
+	};
+
+	return 0;
+}
+
+int fuse_file_read_iter_backing(struct fuse_bpf_args *fa,
+		struct kiocb *iocb, struct iov_iter *to)
+{
+	struct fuse_read_iter_out *frio = fa->out_args[0].value;
+	struct file *file = iocb->ki_filp;
+	struct fuse_file *ff = file->private_data;
+	ssize_t ret;
+
+	if (!iov_iter_count(to))
+		return 0;
+
+	if ((iocb->ki_flags & IOCB_DIRECT) &&
+	    (!ff->backing_file->f_mapping->a_ops ||
+	     !ff->backing_file->f_mapping->a_ops->direct_IO))
+		return -EINVAL;
+
+	/* TODO This just plain ignores any change to fuse_read_in */
+	if (is_sync_kiocb(iocb)) {
+		ret = vfs_iter_read(ff->backing_file, to, &iocb->ki_pos,
+				iocb_to_rw_flags(iocb->ki_flags, FUSE_BPF_IOCB_MASK));
+	} else {
+		struct fuse_bpf_aio_req *aio_req;
+
+		ret = -ENOMEM;
+		aio_req = kmem_cache_zalloc(fuse_bpf_aio_request_cachep, GFP_KERNEL);
+		if (!aio_req)
+			goto out;
+
+		aio_req->iocb_orig = iocb;
+		kiocb_clone(&aio_req->iocb, iocb, ff->backing_file);
+		aio_req->iocb.ki_complete = fuse_bpf_aio_rw_complete;
+		refcount_set(&aio_req->ref, 2);
+		ret = vfs_iocb_iter_read(ff->backing_file, &aio_req->iocb, to);
+		fuse_bpf_aio_put(aio_req);
+		if (ret != -EIOCBQUEUED)
+			fuse_bpf_aio_cleanup_handler(aio_req);
+	}
+
+	frio->ret = ret;
+
+	/* TODO Need to point value at the buffer for post-modification */
+
+out:
+	fuse_file_accessed(file, ff->backing_file);
+
+	return ret;
+}
+
+void *fuse_file_read_iter_finalize(struct fuse_bpf_args *fa,
+		struct kiocb *iocb, struct iov_iter *to)
+{
+	struct fuse_read_iter_out *frio = fa->out_args[0].value;
+
+	return ERR_PTR(frio->ret);
+}
+
+int fuse_file_write_iter_initialize(
+		struct fuse_bpf_args *fa, struct fuse_file_write_iter_io *fwio,
+		struct kiocb *iocb, struct iov_iter *from)
+{
+	struct file *file = iocb->ki_filp;
+	struct fuse_file *ff = file->private_data;
+
+	*fwio = (struct fuse_file_write_iter_io) {
+		.fwi.fh = ff->fh,
+		.fwi.offset = iocb->ki_pos,
+		.fwi.size = from->count,
+	};
+
+	/* TODO we can't assume 'from' is a kvec */
+	*fa = (struct fuse_bpf_args) {
+		.opcode = FUSE_WRITE,
+		.nodeid = ff->nodeid,
+		.in_numargs = 2,
+		.in_args[0].size = sizeof(fwio->fwi),
+		.in_args[0].value = &fwio->fwi,
+		.in_args[1].size = fwio->fwi.size,
+		.in_args[1].value = from->kvec->iov_base,
+		.out_numargs = 1,
+		.out_args[0].size = sizeof(fwio->fwio),
+		.out_args[0].value = &fwio->fwio,
+	};
+
+	return 0;
+}
+
+int fuse_file_write_iter_backing(struct fuse_bpf_args *fa,
+		struct kiocb *iocb, struct iov_iter *from)
+{
+	struct file *file = iocb->ki_filp;
+	struct fuse_file *ff = file->private_data;
+	struct fuse_write_iter_out *fwio = fa->out_args[0].value;
+	ssize_t ret;
+
+	if (!iov_iter_count(from))
+		return 0;
+
+	/* TODO This just plain ignores any change to fuse_write_in */
+	/* TODO uint32_t seems smaller than ssize_t.... right? */
+	inode_lock(file_inode(file));
+
+	fuse_copyattr(file, ff->backing_file);
+
+	if (is_sync_kiocb(iocb)) {
+		file_start_write(ff->backing_file);
+		ret = vfs_iter_write(ff->backing_file, from, &iocb->ki_pos,
+					   iocb_to_rw_flags(iocb->ki_flags, FUSE_BPF_IOCB_MASK));
+		file_end_write(ff->backing_file);
+
+		/* Must reflect change in size of backing file to upper file */
+		if (ret > 0)
+			fuse_copyattr(file, ff->backing_file);
+	} else {
+		struct fuse_bpf_aio_req *aio_req;
+
+		ret = -ENOMEM;
+		aio_req = kmem_cache_zalloc(fuse_bpf_aio_request_cachep, GFP_KERNEL);
+		if (!aio_req)
+			goto out;
+
+		file_start_write(ff->backing_file);
+		__sb_writers_release(file_inode(ff->backing_file)->i_sb, SB_FREEZE_WRITE);
+		aio_req->iocb_orig = iocb;
+		kiocb_clone(&aio_req->iocb, iocb, ff->backing_file);
+		aio_req->iocb.ki_complete = fuse_bpf_aio_rw_complete;
+		refcount_set(&aio_req->ref, 2);
+		ret = vfs_iocb_iter_write(ff->backing_file, &aio_req->iocb, from);
+		fuse_bpf_aio_put(aio_req);
+		if (ret != -EIOCBQUEUED)
+			fuse_bpf_aio_cleanup_handler(aio_req);
+	}
+
+out:
+	inode_unlock(file_inode(file));
+	fwio->ret = ret;
+	if (ret < 0)
+		return ret;
+	return 0;
+}
+
+void *fuse_file_write_iter_finalize(struct fuse_bpf_args *fa,
+		struct kiocb *iocb, struct iov_iter *from)
+{
+	struct fuse_write_iter_out *fwio = fa->out_args[0].value;
+
+	return ERR_PTR(fwio->ret);
+}
+
+ssize_t fuse_backing_mmap(struct file *file, struct vm_area_struct *vma)
+{
+	int ret;
+	struct fuse_file *ff = file->private_data;
+	struct inode *fuse_inode = file_inode(file);
+	struct file *backing_file = ff->backing_file;
+	struct inode *backing_inode = file_inode(backing_file);
+
+	if (!backing_file->f_op->mmap)
+		return -ENODEV;
+
+	if (WARN_ON(file != vma->vm_file))
+		return -EIO;
+
+	vma->vm_file = get_file(backing_file);
+
+	ret = call_mmap(vma->vm_file, vma);
+
+	if (ret)
+		fput(backing_file);
+	else
+		fput(file);
+
+	if (file->f_flags & O_NOATIME)
+		return ret;
+
+	if ((!timespec64_equal(&fuse_inode->i_mtime,
+			       &backing_inode->i_mtime) ||
+	     !timespec64_equal(&fuse_inode->i_ctime,
+			       &backing_inode->i_ctime))) {
+		fuse_inode->i_mtime = backing_inode->i_mtime;
+		fuse_inode->i_ctime = backing_inode->i_ctime;
+	}
+	touch_atime(&file->f_path);
+
+	return ret;
+}
+
+int fuse_file_fallocate_initialize(struct fuse_bpf_args *fa,
+		struct fuse_fallocate_in *ffi,
+		struct file *file, int mode, loff_t offset, loff_t length)
+{
+	struct fuse_file *ff = file->private_data;
+
+	*ffi = (struct fuse_fallocate_in) {
+		.fh = ff->fh,
+		.offset = offset,
+		.length = length,
+		.mode = mode
+	};
+
+	*fa = (struct fuse_bpf_args) {
+		.opcode = FUSE_FALLOCATE,
+		.nodeid = ff->nodeid,
+		.in_numargs = 1,
+		.in_args[0].size = sizeof(*ffi),
+		.in_args[0].value = ffi,
+	};
+
+	return 0;
+}
+
+int fuse_file_fallocate_backing(struct fuse_bpf_args *fa,
+		struct file *file, int mode, loff_t offset, loff_t length)
+{
+	const struct fuse_fallocate_in *ffi = fa->in_args[0].value;
+	struct fuse_file *ff = file->private_data;
+
+	return vfs_fallocate(ff->backing_file, ffi->mode, ffi->offset,
+			     ffi->length);
+}
+
+void *fuse_file_fallocate_finalize(struct fuse_bpf_args *fa,
+		struct file *file, int mode, loff_t offset, loff_t length)
+{
+	return NULL;
+}
+
+/*******************************************************************************
+ * Directory operations after here                                             *
+ ******************************************************************************/
+
+int fuse_lookup_initialize(struct fuse_bpf_args *fa, struct fuse_lookup_io *fli,
+	       struct inode *dir, struct dentry *entry, unsigned int flags)
+{
+	*fa = (struct fuse_bpf_args) {
+		.nodeid = get_fuse_inode(dir)->nodeid,
+		.opcode = FUSE_LOOKUP,
+		.in_numargs = 1,
+		.out_numargs = 2,
+		.flags = FUSE_BPF_OUT_ARGVAR,
+		.in_args[0] = (struct fuse_bpf_in_arg) {
+			.size = entry->d_name.len + 1,
+			.value = entry->d_name.name,
+		},
+		.out_args[0] = (struct fuse_bpf_arg) {
+			.size = sizeof(fli->feo),
+			.value = &fli->feo,
+		},
+		.out_args[1] = (struct fuse_bpf_arg) {
+			.size = sizeof(fli->feb.out),
+			.value = &fli->feb.out,
+		},
+	};
+
+	return 0;
+}
+
+int fuse_lookup_backing(struct fuse_bpf_args *fa, struct inode *dir,
+			  struct dentry *entry, unsigned int flags)
+{
+	struct fuse_dentry *fuse_entry = get_fuse_dentry(entry);
+	struct fuse_dentry *dir_fuse_entry = get_fuse_dentry(entry->d_parent);
+	struct dentry *dir_backing_entry = dir_fuse_entry->backing_path.dentry;
+	struct inode *dir_backing_inode = dir_backing_entry->d_inode;
+	struct dentry *backing_entry;
+	struct fuse_entry_out *feo = (void *)fa->out_args[0].value;
+	struct kstat stat;
+	int err;
+
+	/* TODO this will not handle lookups over mount points */
+	inode_lock_nested(dir_backing_inode, I_MUTEX_PARENT);
+	backing_entry = lookup_one_len(entry->d_name.name, dir_backing_entry,
+					strlen(entry->d_name.name));
+	inode_unlock(dir_backing_inode);
+
+	if (IS_ERR(backing_entry))
+		return PTR_ERR(backing_entry);
+
+	fuse_entry->backing_path = (struct path) {
+		.dentry = backing_entry,
+		.mnt = mntget(dir_fuse_entry->backing_path.mnt),
+	};
+
+	if (d_is_negative(backing_entry)) {
+		fa->error_in = -ENOENT;
+		return 0;
+	}
+
+	err = vfs_getattr(&fuse_entry->backing_path, &stat,
+				  STATX_BASIC_STATS, 0);
+	if (err) {
+		path_put_init(&fuse_entry->backing_path);
+		return err;
+	}
+
+	fuse_stat_to_attr(get_fuse_conn(dir),
+			  backing_entry->d_inode, &stat, &feo->attr);
+	return 0;
+}
+
+int fuse_handle_backing(struct fuse_entry_bpf *feb, struct inode **backing_inode,
+			struct path *backing_path)
+{
+	switch (feb->out.backing_action) {
+	case FUSE_ACTION_KEEP:
+		/* backing inode/path are added in fuse_lookup_backing */
+		break;
+
+	case FUSE_ACTION_REMOVE:
+		iput(*backing_inode);
+		*backing_inode = NULL;
+		path_put_init(backing_path);
+		break;
+
+	case FUSE_ACTION_REPLACE: {
+		struct file *backing_file = feb->backing_file;
+
+		if (!backing_file)
+			return -EINVAL;
+		if (IS_ERR(backing_file))
+			return PTR_ERR(backing_file);
+
+		if (backing_inode)
+			iput(*backing_inode);
+		*backing_inode = backing_file->f_inode;
+		ihold(*backing_inode);
+
+		path_put(backing_path);
+		*backing_path = backing_file->f_path;
+		path_get(backing_path);
+
+		fput(backing_file);
+		break;
+	}
+
+	default:
+		return -EINVAL;
+	}
+
+	return 0;
+}
+
+int fuse_handle_bpf_prog(struct fuse_entry_bpf *feb, struct inode *parent,
+			 struct bpf_prog **bpf)
+{
+	struct bpf_prog *new_bpf;
+
+	/* Parent isn't presented, but we want to keep
+	 * Don't touch bpf program at all in this case
+	 */
+	if (feb->out.bpf_action == FUSE_ACTION_KEEP && !parent)
+		return 0;
+
+	switch (feb->out.bpf_action) {
+	case FUSE_ACTION_KEEP: {
+		struct fuse_inode *pi = get_fuse_inode(parent);
+
+		new_bpf = pi->bpf;
+		if (new_bpf)
+			bpf_prog_inc(new_bpf);
+		break;
+	}
+
+	case FUSE_ACTION_REMOVE:
+		new_bpf = NULL;
+		break;
+
+	case FUSE_ACTION_REPLACE: {
+		struct file *bpf_file = feb->bpf_file;
+		struct bpf_prog *bpf_prog = ERR_PTR(-EINVAL);
+
+		if (bpf_file && !IS_ERR(bpf_file))
+			bpf_prog = fuse_get_bpf_prog(bpf_file);
+
+		if (IS_ERR(bpf_prog))
+			return PTR_ERR(bpf_prog);
+
+		new_bpf = bpf_prog;
+		break;
+	}
+
+	default:
+		return -EINVAL;
+	}
+
+	/* Cannot change existing program */
+	if (*bpf) {
+		bpf_prog_put(new_bpf);
+		return new_bpf == *bpf ? 0 : -EINVAL;
+	}
+
+	*bpf = new_bpf;
+	return 0;
+}
+
+struct dentry *fuse_lookup_finalize(struct fuse_bpf_args *fa, struct inode *dir,
+			   struct dentry *entry, unsigned int flags)
+{
+	struct fuse_dentry *fd;
+	struct dentry *bd;
+	struct inode *inode, *backing_inode;
+	struct inode *d_inode = entry->d_inode;
+	struct fuse_entry_out *feo = fa->out_args[0].value;
+	struct fuse_entry_bpf_out *febo = fa->out_args[1].value;
+	struct fuse_entry_bpf *feb = container_of(febo, struct fuse_entry_bpf, out);
+	int error = -1;
+	u64 target_nodeid = 0;
+
+	fd = get_fuse_dentry(entry);
+	if (!fd)
+		return ERR_PTR(-EIO);
+	bd = fd->backing_path.dentry;
+	if (!bd)
+		return ERR_PTR(-ENOENT);
+	backing_inode = bd->d_inode;
+	if (!backing_inode)
+		return 0;
+
+	if (d_inode)
+		target_nodeid = get_fuse_inode(d_inode)->nodeid;
+
+	inode = fuse_iget_backing(dir->i_sb, target_nodeid, backing_inode);
+
+	if (IS_ERR(inode))
+		return ERR_PTR(PTR_ERR(inode));
+
+	error = fuse_handle_bpf_prog(feb, dir, &get_fuse_inode(inode)->bpf);
+	if (error)
+		return ERR_PTR(error);
+
+	error = fuse_handle_backing(feb, &get_fuse_inode(inode)->backing_inode, &fd->backing_path);
+	if (error)
+		return ERR_PTR(error);
+
+	get_fuse_inode(inode)->nodeid = feo->nodeid;
+
+	return d_splice_alias(inode, entry);
+}
+
+int fuse_revalidate_backing(struct dentry *entry, unsigned int flags)
+{
+	struct fuse_dentry *fuse_dentry = get_fuse_dentry(entry);
+	struct dentry *backing_entry = fuse_dentry->backing_path.dentry;
+
+	spin_lock(&backing_entry->d_lock);
+	if (d_unhashed(backing_entry)) {
+		spin_unlock(&backing_entry->d_lock);
+			return 0;
+	}
+	spin_unlock(&backing_entry->d_lock);
+
+	if (unlikely(backing_entry->d_flags & DCACHE_OP_REVALIDATE))
+		return backing_entry->d_op->d_revalidate(backing_entry, flags);
+	return 1;
+}
+
+int fuse_canonical_path_initialize(struct fuse_bpf_args *fa,
+				   struct fuse_dummy_io *fdi,
+				   const struct path *path,
+				   struct path *canonical_path)
+{
+	fa->opcode = FUSE_CANONICAL_PATH;
+	return 0;
+}
+
+int fuse_canonical_path_backing(struct fuse_bpf_args *fa, const struct path *path,
+				struct path *canonical_path)
+{
+	get_fuse_backing_path(path->dentry, canonical_path);
+	return 0;
+}
+
+void *fuse_canonical_path_finalize(struct fuse_bpf_args *fa,
+				   const struct path *path,
+				   struct path *canonical_path)
+{
+	return NULL;
+}
+
+int fuse_mknod_initialize(
+		struct fuse_bpf_args *fa, struct fuse_mknod_in *fmi,
+		struct inode *dir, struct dentry *entry, umode_t mode, dev_t rdev)
+{
+	*fmi = (struct fuse_mknod_in) {
+		.mode = mode,
+		.rdev = new_encode_dev(rdev),
+		.umask = current_umask(),
+	};
+	*fa = (struct fuse_bpf_args) {
+		.nodeid = get_node_id(dir),
+		.opcode = FUSE_MKNOD,
+		.in_numargs = 2,
+		.in_args[0] = (struct fuse_bpf_in_arg) {
+			.size = sizeof(*fmi),
+			.value = fmi,
+		},
+		.in_args[1] = (struct fuse_bpf_in_arg) {
+			.size = entry->d_name.len + 1,
+			.value = entry->d_name.name,
+		},
+	};
+
+	return 0;
+}
+
+int fuse_mknod_backing(
+		struct fuse_bpf_args *fa,
+		struct inode *dir, struct dentry *entry, umode_t mode, dev_t rdev)
+{
+	int err = 0;
+	const struct fuse_mknod_in *fmi = fa->in_args[0].value;
+	struct fuse_inode *fuse_inode = get_fuse_inode(dir);
+	struct inode *backing_inode = fuse_inode->backing_inode;
+	struct path backing_path = {};
+	struct inode *inode = NULL;
+
+	//TODO Actually deal with changing the backing entry in mknod
+	get_fuse_backing_path(entry, &backing_path);
+	if (!backing_path.dentry)
+		return -EBADF;
+
+	inode_lock_nested(backing_inode, I_MUTEX_PARENT);
+	mode = fmi->mode;
+	if (!IS_POSIXACL(backing_inode))
+		mode &= ~fmi->umask;
+	err = vfs_mknod(&init_user_ns, backing_inode, backing_path.dentry,
+			mode, new_decode_dev(fmi->rdev));
+	inode_unlock(backing_inode);
+	if (err)
+		goto out;
+	if (d_really_is_negative(backing_path.dentry) ||
+		unlikely(d_unhashed(backing_path.dentry))) {
+		err = -EINVAL;
+		/**
+		 * TODO: overlayfs responds to this situation with a
+		 * lookupOneLen. Should we do that too?
+		 */
+		goto out;
+	}
+	inode = fuse_iget_backing(dir->i_sb, fuse_inode->nodeid, backing_inode);
+	if (IS_ERR(inode)) {
+		err = PTR_ERR(inode);
+		goto out;
+	}
+	d_instantiate(entry, inode);
+out:
+	path_put(&backing_path);
+	return err;
+}
+
+void *fuse_mknod_finalize(
+		struct fuse_bpf_args *fa,
+		struct inode *dir, struct dentry *entry, umode_t mode, dev_t rdev)
+{
+	return NULL;
+}
+
+int fuse_mkdir_initialize(
+		struct fuse_bpf_args *fa, struct fuse_mkdir_in *fmi,
+		struct inode *dir, struct dentry *entry, umode_t mode)
+{
+	*fmi = (struct fuse_mkdir_in) {
+		.mode = mode,
+		.umask = current_umask(),
+	};
+	*fa = (struct fuse_bpf_args) {
+		.nodeid = get_node_id(dir),
+		.opcode = FUSE_MKDIR,
+		.in_numargs = 2,
+		.in_args[0] = (struct fuse_bpf_in_arg) {
+			.size = sizeof(*fmi),
+			.value = fmi,
+		},
+		.in_args[1] = (struct fuse_bpf_in_arg) {
+			.size = entry->d_name.len + 1,
+			.value = entry->d_name.name,
+		},
+	};
+
+	return 0;
+}
+
+int fuse_mkdir_backing(
+		struct fuse_bpf_args *fa,
+		struct inode *dir, struct dentry *entry, umode_t mode)
+{
+	int err = 0;
+	const struct fuse_mkdir_in *fmi = fa->in_args[0].value;
+	struct fuse_inode *fuse_inode = get_fuse_inode(dir);
+	struct inode *backing_inode = fuse_inode->backing_inode;
+	struct path backing_path = {};
+	struct inode *inode = NULL;
+	struct dentry *d;
+
+	//TODO Actually deal with changing the backing entry in mkdir
+	get_fuse_backing_path(entry, &backing_path);
+	if (!backing_path.dentry)
+		return -EBADF;
+
+	inode_lock_nested(backing_inode, I_MUTEX_PARENT);
+	mode = fmi->mode;
+	if (!IS_POSIXACL(backing_inode))
+		mode &= ~fmi->umask;
+	err = vfs_mkdir(&init_user_ns, backing_inode, backing_path.dentry, mode);
+	if (err)
+		goto out;
+	if (d_really_is_negative(backing_path.dentry) ||
+		unlikely(d_unhashed(backing_path.dentry))) {
+		d = lookup_one_len(entry->d_name.name, backing_path.dentry->d_parent,
+				entry->d_name.len);
+		if (IS_ERR(d)) {
+			err = PTR_ERR(d);
+			goto out;
+		}
+		dput(backing_path.dentry);
+		backing_path.dentry = d;
+	}
+	inode = fuse_iget_backing(dir->i_sb, fuse_inode->nodeid, backing_inode);
+	if (IS_ERR(inode)) {
+		err = PTR_ERR(inode);
+		goto out;
+	}
+	d_instantiate(entry, inode);
+out:
+	inode_unlock(backing_inode);
+	path_put(&backing_path);
+	return err;
+}
+
+void *fuse_mkdir_finalize(
+		struct fuse_bpf_args *fa,
+		struct inode *dir, struct dentry *entry, umode_t mode)
+{
+	return NULL;
+}
+
+int fuse_rmdir_initialize(
+		struct fuse_bpf_args *fa, struct fuse_dummy_io *dummy,
+		struct inode *dir, struct dentry *entry)
+{
+	*fa = (struct fuse_bpf_args) {
+		.nodeid = get_node_id(dir),
+		.opcode = FUSE_RMDIR,
+		.in_numargs = 1,
+		.in_args[0] = (struct fuse_bpf_in_arg) {
+			.size = entry->d_name.len + 1,
+			.value = entry->d_name.name,
+		},
+	};
+
+	return 0;
+}
+
+int fuse_rmdir_backing(
+		struct fuse_bpf_args *fa,
+		struct inode *dir, struct dentry *entry)
+{
+	int err = 0;
+	struct path backing_path = {};
+	struct dentry *backing_parent_dentry;
+	struct inode *backing_inode;
+
+	/* TODO Actually deal with changing the backing entry in rmdir */
+	get_fuse_backing_path(entry, &backing_path);
+	if (!backing_path.dentry)
+		return -EBADF;
+
+	/* TODO Not sure if we should reverify like overlayfs, or get inode from d_parent */
+	backing_parent_dentry = dget_parent(backing_path.dentry);
+	backing_inode = d_inode(backing_parent_dentry);
+
+	inode_lock_nested(backing_inode, I_MUTEX_PARENT);
+	err = vfs_rmdir(&init_user_ns, backing_inode, backing_path.dentry);
+	inode_unlock(backing_inode);
+
+	dput(backing_parent_dentry);
+	if (!err)
+		d_drop(entry);
+	path_put(&backing_path);
+	return err;
+}
+
+void *fuse_rmdir_finalize(
+		struct fuse_bpf_args *fa,
+		struct inode *dir, struct dentry *entry)
+{
+	return NULL;
+}
+
+static int fuse_rename_backing_common(
+			 struct inode *olddir, struct dentry *oldent,
+			 struct inode *newdir, struct dentry *newent,
+			 unsigned int flags)
+{
+	int err = 0;
+	struct path old_backing_path;
+	struct path new_backing_path;
+	struct dentry *old_backing_dir_dentry;
+	struct dentry *old_backing_dentry;
+	struct dentry *new_backing_dir_dentry;
+	struct dentry *new_backing_dentry;
+	struct dentry *trap = NULL;
+	struct inode *target_inode;
+	struct renamedata rd;
+
+	//TODO Actually deal with changing anything that isn't a flag
+	get_fuse_backing_path(oldent, &old_backing_path);
+	if (!old_backing_path.dentry)
+		return -EBADF;
+	get_fuse_backing_path(newent, &new_backing_path);
+	if (!new_backing_path.dentry) {
+		/*
+		 * TODO A file being moved from a backing path to another
+		 * backing path which is not yet instrumented with FUSE-BPF.
+		 * This may be slow and should be substituted with something
+		 * more clever.
+		 */
+		err = -EXDEV;
+		goto put_old_path;
+	}
+	if (new_backing_path.mnt != old_backing_path.mnt) {
+		err = -EXDEV;
+		goto put_new_path;
+	}
+	old_backing_dentry = old_backing_path.dentry;
+	new_backing_dentry = new_backing_path.dentry;
+	old_backing_dir_dentry = dget_parent(old_backing_dentry);
+	new_backing_dir_dentry = dget_parent(new_backing_dentry);
+	target_inode = d_inode(newent);
+
+	trap = lock_rename(old_backing_dir_dentry, new_backing_dir_dentry);
+	if (trap == old_backing_dentry) {
+		err = -EINVAL;
+		goto put_parents;
+	}
+	if (trap == new_backing_dentry) {
+		err = -ENOTEMPTY;
+		goto put_parents;
+	}
+	rd = (struct renamedata) {
+		.old_mnt_userns = &init_user_ns,
+		.old_dir = d_inode(old_backing_dir_dentry),
+		.old_dentry = old_backing_dentry,
+		.new_mnt_userns = &init_user_ns,
+		.new_dir = d_inode(new_backing_dir_dentry),
+		.new_dentry = new_backing_dentry,
+		.flags = flags,
+	};
+	err = vfs_rename(&rd);
+	if (err)
+		goto unlock;
+	if (target_inode)
+		fsstack_copy_attr_all(target_inode,
+				get_fuse_inode(target_inode)->backing_inode);
+	fsstack_copy_attr_all(d_inode(oldent), d_inode(old_backing_dentry));
+unlock:
+	unlock_rename(old_backing_dir_dentry, new_backing_dir_dentry);
+put_parents:
+	dput(new_backing_dir_dentry);
+	dput(old_backing_dir_dentry);
+put_new_path:
+	path_put(&new_backing_path);
+put_old_path:
+	path_put(&old_backing_path);
+	return err;
+}
+
+int fuse_rename2_initialize(struct fuse_bpf_args *fa, struct fuse_rename2_in *fri,
+			    struct inode *olddir, struct dentry *oldent,
+			    struct inode *newdir, struct dentry *newent,
+			    unsigned int flags)
+{
+	*fri = (struct fuse_rename2_in) {
+		.newdir = get_node_id(newdir),
+		.flags = flags,
+	};
+	*fa = (struct fuse_bpf_args) {
+		.nodeid = get_node_id(olddir),
+		.opcode = FUSE_RENAME2,
+		.in_numargs = 3,
+		.in_args[0] = (struct fuse_bpf_in_arg) {
+			.size = sizeof(*fri),
+			.value = fri,
+		},
+		.in_args[1] = (struct fuse_bpf_in_arg) {
+			.size = oldent->d_name.len + 1,
+			.value = oldent->d_name.name,
+		},
+		.in_args[2] = (struct fuse_bpf_in_arg) {
+			.size = newent->d_name.len + 1,
+			.value = newent->d_name.name,
+		},
+	};
+
+	return 0;
+}
+
+int fuse_rename2_backing(struct fuse_bpf_args *fa,
+			 struct inode *olddir, struct dentry *oldent,
+			 struct inode *newdir, struct dentry *newent,
+			 unsigned int flags)
+{
+	const struct fuse_rename2_in *fri = fa->in_args[0].value;
+
+	/* TODO: deal with changing dirs/ents */
+	return fuse_rename_backing_common(olddir, oldent, newdir, newent, fri->flags);
+}
+
+void *fuse_rename2_finalize(struct fuse_bpf_args *fa,
+			    struct inode *olddir, struct dentry *oldent,
+			    struct inode *newdir, struct dentry *newent,
+			    unsigned int flags)
+{
+	return NULL;
+}
+
+int fuse_rename_initialize(struct fuse_bpf_args *fa, struct fuse_rename_in *fri,
+			   struct inode *olddir, struct dentry *oldent,
+			   struct inode *newdir, struct dentry *newent)
+{
+	*fri = (struct fuse_rename_in) {
+		.newdir = get_node_id(newdir),
+	};
+	*fa = (struct fuse_bpf_args) {
+		.nodeid = get_node_id(olddir),
+		.opcode = FUSE_RENAME,
+		.in_numargs = 3,
+		.in_args[0] = (struct fuse_bpf_in_arg) {
+			.size = sizeof(*fri),
+			.value = fri,
+		},
+		.in_args[1] = (struct fuse_bpf_in_arg) {
+			.size = oldent->d_name.len + 1,
+			.value = oldent->d_name.name,
+		},
+		.in_args[2] = (struct fuse_bpf_in_arg) {
+			.size = newent->d_name.len + 1,
+			.value = newent->d_name.name,
+		},
+	};
+
+	return 0;
+}
+
+int fuse_rename_backing(struct fuse_bpf_args *fa,
+			struct inode *olddir, struct dentry *oldent,
+			struct inode *newdir, struct dentry *newent)
+{
+	/* TODO: deal with changing dirs/ents */
+	return fuse_rename_backing_common(olddir, oldent, newdir, newent, 0);
+}
+
+void *fuse_rename_finalize(struct fuse_bpf_args *fa,
+			   struct inode *olddir, struct dentry *oldent,
+			   struct inode *newdir, struct dentry *newent)
+{
+	return NULL;
+}
+
+int fuse_unlink_initialize(
+		struct fuse_bpf_args *fa, struct fuse_dummy_io *dummy,
+		struct inode *dir, struct dentry *entry)
+{
+	*fa = (struct fuse_bpf_args) {
+		.nodeid = get_node_id(dir),
+		.opcode = FUSE_UNLINK,
+		.in_numargs = 1,
+		.in_args[0] = (struct fuse_bpf_in_arg) {
+			.size = entry->d_name.len + 1,
+			.value = entry->d_name.name,
+		},
+	};
+
+	return 0;
+}
+
+int fuse_unlink_backing(
+		struct fuse_bpf_args *fa,
+		struct inode *dir, struct dentry *entry)
+{
+	int err = 0;
+	struct path backing_path = {};
+	struct dentry *backing_parent_dentry;
+	struct inode *backing_inode;
+
+	/* TODO Actually deal with changing the backing entry in unlink */
+	get_fuse_backing_path(entry, &backing_path);
+	if (!backing_path.dentry)
+		return -EBADF;
+
+	/* TODO Not sure if we should reverify like overlayfs, or get inode from d_parent */
+	backing_parent_dentry = dget_parent(backing_path.dentry);
+	backing_inode = d_inode(backing_parent_dentry);
+
+	inode_lock_nested(backing_inode, I_MUTEX_PARENT);
+	err = vfs_unlink(&init_user_ns, backing_inode, backing_path.dentry, NULL);
+	inode_unlock(backing_inode);
+
+	dput(backing_parent_dentry);
+	if (!err)
+		d_drop(entry);
+	path_put(&backing_path);
+	return err;
+}
+
+void *fuse_unlink_finalize(
+		struct fuse_bpf_args *fa,
+		struct inode *dir, struct dentry *entry)
+{
+	return NULL;
+}
+
+int fuse_link_initialize(struct fuse_bpf_args *fa, struct fuse_link_in *fli,
+			 struct dentry *entry, struct inode *dir,
+			 struct dentry *newent)
+{
+	struct inode *src_inode = entry->d_inode;
+
+	*fli = (struct fuse_link_in){
+		.oldnodeid = get_node_id(src_inode),
+	};
+
+	fa->opcode = FUSE_LINK;
+	fa->in_numargs = 2;
+	fa->in_args[0].size = sizeof(*fli);
+	fa->in_args[0].value = fli;
+	fa->in_args[1].size = newent->d_name.len + 1;
+	fa->in_args[1].value = newent->d_name.name;
+
+	return 0;
+}
+
+int fuse_link_backing(struct fuse_bpf_args *fa, struct dentry *entry,
+		      struct inode *dir, struct dentry *newent)
+{
+	int err = 0;
+	struct path backing_old_path = {};
+	struct path backing_new_path = {};
+	struct dentry *backing_dir_dentry;
+	struct inode *fuse_new_inode = NULL;
+	struct fuse_inode *fuse_dir_inode = get_fuse_inode(dir);
+	struct inode *backing_dir_inode = fuse_dir_inode->backing_inode;
+
+	get_fuse_backing_path(entry, &backing_old_path);
+	if (!backing_old_path.dentry)
+		return -EBADF;
+
+	get_fuse_backing_path(newent, &backing_new_path);
+	if (!backing_new_path.dentry) {
+		err = -EBADF;
+		goto err_dst_path;
+	}
+
+	backing_dir_dentry = dget_parent(backing_new_path.dentry);
+	backing_dir_inode = d_inode(backing_dir_dentry);
+
+	inode_lock_nested(backing_dir_inode, I_MUTEX_PARENT);
+	err = vfs_link(backing_old_path.dentry,  &init_user_ns,
+		       backing_dir_inode, backing_new_path.dentry, NULL);
+	inode_unlock(backing_dir_inode);
+	if (err)
+		goto out;
+
+	if (d_really_is_negative(backing_new_path.dentry) ||
+	    unlikely(d_unhashed(backing_new_path.dentry))) {
+		err = -EINVAL;
+		/**
+		 * TODO: overlayfs responds to this situation with a
+		 * lookupOneLen. Should we do that too?
+		 */
+		goto out;
+	}
+
+	fuse_new_inode = fuse_iget_backing(dir->i_sb, fuse_dir_inode->nodeid, backing_dir_inode);
+	if (IS_ERR(fuse_new_inode)) {
+		err = PTR_ERR(fuse_new_inode);
+		goto out;
+	}
+	d_instantiate(newent, fuse_new_inode);
+
+out:
+	dput(backing_dir_dentry);
+	path_put(&backing_new_path);
+err_dst_path:
+	path_put(&backing_old_path);
+	return err;
+}
+
+void *fuse_link_finalize(struct fuse_bpf_args *fa, struct dentry *entry,
+			 struct inode *dir, struct dentry *newent)
+{
+	return NULL;
+}
+
+int fuse_getattr_initialize(struct fuse_bpf_args *fa, struct fuse_getattr_io *fgio,
+			const struct dentry *entry, struct kstat *stat,
+			u32 request_mask, unsigned int flags)
+{
+	fgio->fgi = (struct fuse_getattr_in) {
+		.getattr_flags = flags,
+		.fh = -1, /* TODO is this OK? */
+	};
+
+	fgio->fao = (struct fuse_attr_out) {0};
+
+	*fa = (struct fuse_bpf_args) {
+		.nodeid = get_node_id(entry->d_inode),
+		.opcode = FUSE_GETATTR,
+		.in_numargs = 1,
+		.out_numargs = 1,
+		.in_args[0] = (struct fuse_bpf_in_arg) {
+			.size = sizeof(fgio->fgi),
+			.value = &fgio->fgi,
+		},
+		.out_args[0] = (struct fuse_bpf_arg) {
+			.size = sizeof(fgio->fao),
+			.value = &fgio->fao,
+		},
+	};
+
+	return 0;
+}
+
+static void fuse_stat_to_attr(struct fuse_conn *fc, struct inode *inode,
+		struct kstat *stat, struct fuse_attr *attr)
+{
+	unsigned int blkbits;
+
+	/* see the comment in fuse_change_attributes() */
+	if (fc->writeback_cache && S_ISREG(inode->i_mode)) {
+		stat->size = i_size_read(inode);
+		stat->mtime.tv_sec = inode->i_mtime.tv_sec;
+		stat->mtime.tv_nsec = inode->i_mtime.tv_nsec;
+		stat->ctime.tv_sec = inode->i_ctime.tv_sec;
+		stat->ctime.tv_nsec = inode->i_ctime.tv_nsec;
+	}
+
+	attr->ino = stat->ino;
+	attr->mode = (inode->i_mode & S_IFMT) | (stat->mode & 07777);
+	attr->nlink = stat->nlink;
+	attr->uid = from_kuid(fc->user_ns, stat->uid);
+	attr->gid = from_kgid(fc->user_ns, stat->gid);
+	attr->atime = stat->atime.tv_sec;
+	attr->atimensec = stat->atime.tv_nsec;
+	attr->mtime = stat->mtime.tv_sec;
+	attr->mtimensec = stat->mtime.tv_nsec;
+	attr->ctime = stat->ctime.tv_sec;
+	attr->ctimensec = stat->ctime.tv_nsec;
+	attr->size = stat->size;
+	attr->blocks = stat->blocks;
+
+	if (stat->blksize != 0)
+		blkbits = ilog2(stat->blksize);
+	else
+		blkbits = inode->i_sb->s_blocksize_bits;
+
+	attr->blksize = 1 << blkbits;
+}
+
+int fuse_getattr_backing(struct fuse_bpf_args *fa,
+		const struct dentry *entry, struct kstat *stat,
+			u32 request_mask, unsigned int flags)
+{
+	struct path *backing_path =
+		&get_fuse_dentry(entry)->backing_path;
+	struct inode *backing_inode = backing_path->dentry->d_inode;
+	struct fuse_attr_out *fao = fa->out_args[0].value;
+	struct kstat tmp;
+	int err;
+
+	if (!stat)
+		stat = &tmp;
+
+	err = vfs_getattr(backing_path, stat, request_mask, flags);
+
+	if (!err)
+		fuse_stat_to_attr(get_fuse_conn(entry->d_inode),
+				  backing_inode, stat, &fao->attr);
+
+	return err;
+}
+
+void *fuse_getattr_finalize(struct fuse_bpf_args *fa,
+			const struct dentry *entry, struct kstat *stat,
+			u32 request_mask, unsigned int flags)
+{
+	struct fuse_attr_out *outarg = fa->out_args[0].value;
+	struct inode *inode = entry->d_inode;
+	u64 attr_version = fuse_get_attr_version(get_fuse_mount(inode)->fc);
+	int err = 0;
+
+	/* TODO: Ensure this doesn't happen if we had an error getting attrs in
+	 * backing.
+	 */
+	err = finalize_attr(inode, outarg, attr_version, stat);
+	return ERR_PTR(err);
+}
+
+static void fattr_to_iattr(struct fuse_conn *fc,
+			   const struct fuse_setattr_in *arg,
+			   struct iattr *iattr)
+{
+	unsigned int fvalid = arg->valid;
+
+	if (fvalid & FATTR_MODE)
+		iattr->ia_valid |= ATTR_MODE, iattr->ia_mode = arg->mode;
+	if (fvalid & FATTR_UID) {
+		iattr->ia_valid |= ATTR_UID;
+		iattr->ia_uid = make_kuid(fc->user_ns, arg->uid);
+	}
+	if (fvalid & FATTR_GID) {
+		iattr->ia_valid |= ATTR_GID;
+		iattr->ia_gid = make_kgid(fc->user_ns, arg->gid);
+	}
+	if (fvalid & FATTR_SIZE)
+		iattr->ia_valid |= ATTR_SIZE,  iattr->ia_size = arg->size;
+	if (fvalid & FATTR_ATIME) {
+		iattr->ia_valid |= ATTR_ATIME;
+		iattr->ia_atime.tv_sec = arg->atime;
+		iattr->ia_atime.tv_nsec = arg->atimensec;
+		if (!(fvalid & FATTR_ATIME_NOW))
+			iattr->ia_valid |= ATTR_ATIME_SET;
+	}
+	if (fvalid & FATTR_MTIME) {
+		iattr->ia_valid |= ATTR_MTIME;
+		iattr->ia_mtime.tv_sec = arg->mtime;
+		iattr->ia_mtime.tv_nsec = arg->mtimensec;
+		if (!(fvalid & FATTR_MTIME_NOW))
+			iattr->ia_valid |= ATTR_MTIME_SET;
+	}
+	if (fvalid & FATTR_CTIME) {
+		iattr->ia_valid |= ATTR_CTIME;
+		iattr->ia_ctime.tv_sec = arg->ctime;
+		iattr->ia_ctime.tv_nsec = arg->ctimensec;
+	}
+}
+
+int fuse_setattr_initialize(struct fuse_bpf_args *fa, struct fuse_setattr_io *fsio,
+		struct dentry *dentry, struct iattr *attr, struct file *file)
+{
+	struct fuse_conn *fc = get_fuse_conn(dentry->d_inode);
+
+	*fsio = (struct fuse_setattr_io) {0};
+	iattr_to_fattr(fc, attr, &fsio->fsi, true);
+
+	*fa = (struct fuse_bpf_args) {
+		.opcode = FUSE_SETATTR,
+		.nodeid = get_node_id(dentry->d_inode),
+		.in_numargs = 1,
+		.in_args[0].size = sizeof(fsio->fsi),
+		.in_args[0].value = &fsio->fsi,
+		.out_numargs = 1,
+		.out_args[0].size = sizeof(fsio->fao),
+		.out_args[0].value = &fsio->fao,
+	};
+
+	return 0;
+}
+
+int fuse_setattr_backing(struct fuse_bpf_args *fa,
+		struct dentry *dentry, struct iattr *attr, struct file *file)
+{
+	struct fuse_conn *fc = get_fuse_conn(dentry->d_inode);
+	const struct fuse_setattr_in *fsi = fa->in_args[0].value;
+	struct iattr new_attr = {0};
+	struct path *backing_path = &get_fuse_dentry(dentry)->backing_path;
+	int res;
+
+	fattr_to_iattr(fc, fsi, &new_attr);
+	/* TODO: Some info doesn't get saved by the attr->fattr->attr transition
+	 * When we actually allow the bpf to change these, we may have to consider
+	 * the extra flags more, or pass more info into the bpf. Until then we can
+	 * keep everything except for ATTR_FILE, since we'd need a file on the
+	 * lower fs. For what it's worth, neither f2fs nor ext4 make use of that
+	 * even if it is present.
+	 */
+	new_attr.ia_valid = attr->ia_valid & ~ATTR_FILE;
+	inode_lock(d_inode(backing_path->dentry));
+	res = notify_change(&init_user_ns, backing_path->dentry, &new_attr,
+			    NULL);
+	inode_unlock(d_inode(backing_path->dentry));
+
+	if (res == 0 && (new_attr.ia_valid & ATTR_SIZE))
+		i_size_write(dentry->d_inode, new_attr.ia_size);
+	return res;
+}
+
+void *fuse_setattr_finalize(struct fuse_bpf_args *fa,
+		struct dentry *dentry, struct iattr *attr, struct file *file)
+{
+	return NULL;
+}
+
+int fuse_statfs_initialize(
+		struct fuse_bpf_args *fa, struct fuse_statfs_out *fso,
+		struct dentry *dentry, struct kstatfs *buf)
+{
+	*fso = (struct fuse_statfs_out) {0};
+	*fa = (struct fuse_bpf_args) {
+		.nodeid = get_node_id(d_inode(dentry)),
+		.opcode = FUSE_STATFS,
+		.out_numargs = 1,
+		.out_numargs = 1,
+		.out_args[0].size = sizeof(fso),
+		.out_args[0].value = fso,
+	};
+
+	return 0;
+}
+
+int fuse_statfs_backing(
+		struct fuse_bpf_args *fa,
+		struct dentry *dentry, struct kstatfs *buf)
+{
+	int err = 0;
+	struct path backing_path;
+	struct fuse_statfs_out *fso = fa->out_args[0].value;
+
+	get_fuse_backing_path(dentry, &backing_path);
+	if (!backing_path.dentry)
+		return -EBADF;
+	err = vfs_statfs(&backing_path, buf);
+	path_put(&backing_path);
+	buf->f_type = FUSE_SUPER_MAGIC;
+
+	//TODO Provide postfilter opportunity to modify
+	if (!err)
+		convert_statfs_to_fuse(&fso->st, buf);
+
+	return err;
+}
+
+void *fuse_statfs_finalize(
+		struct fuse_bpf_args *fa,
+		struct dentry *dentry, struct kstatfs *buf)
+{
+	struct fuse_statfs_out *fso = fa->out_args[0].value;
+
+	if (!fa->error_in)
+		convert_fuse_statfs(buf, &fso->st);
+	return NULL;
+}
+
+int fuse_get_link_initialize(struct fuse_bpf_args *fa, struct fuse_dummy_io *unused,
+		struct inode *inode, struct dentry *dentry,
+		struct delayed_call *callback, const char **out)
+{
+	/*
+	 * TODO
+	 * If we want to handle changing these things, we'll need to copy
+	 * the lower fs's data into our own buffer, and provide our own callback
+	 * to free that buffer.
+	 *
+	 * Pre could change the name we're looking at
+	 * postfilter can change the name we return
+	 *
+	 * We ought to only make that buffer if it's been requested, so leaving
+	 * this unimplemented for the moment
+	 */
+	*fa = (struct fuse_bpf_args) {
+		.opcode = FUSE_READLINK,
+		.nodeid = get_node_id(inode),
+		.in_numargs = 1,
+		.in_args[0] = (struct fuse_bpf_in_arg) {
+			.size = dentry->d_name.len + 1,
+			.value = dentry->d_name.name,
+		},
+		/*
+		 * .out_argvar = 1,
+		 * .out_numargs = 1,
+		 * .out_args[0].size = ,
+		 * .out_args[0].value = ,
+		 */
+	};
+
+	return 0;
+}
+
+int fuse_get_link_backing(struct fuse_bpf_args *fa,
+		struct inode *inode, struct dentry *dentry,
+		struct delayed_call *callback, const char **out)
+{
+	struct path backing_path;
+
+	if (!dentry) {
+		*out = ERR_PTR(-ECHILD);
+		return PTR_ERR(*out);
+	}
+
+	get_fuse_backing_path(dentry, &backing_path);
+	if (!backing_path.dentry) {
+		*out = ERR_PTR(-ECHILD);
+		return PTR_ERR(*out);
+	}
+
+	/*
+	 * TODO: If we want to do our own thing, copy the data and then call the
+	 * callback
+	 */
+	*out = vfs_get_link(backing_path.dentry, callback);
+
+	path_put(&backing_path);
+	return 0;
+}
+
+void *fuse_get_link_finalize(struct fuse_bpf_args *fa,
+		struct inode *inode, struct dentry *dentry,
+		struct delayed_call *callback,  const char **out)
+{
+	return NULL;
+}
+
+int fuse_symlink_initialize(
+		struct fuse_bpf_args *fa, struct fuse_dummy_io *unused,
+		struct inode *dir, struct dentry *entry, const char *link, int len)
+{
+	*fa = (struct fuse_bpf_args) {
+		.nodeid = get_node_id(dir),
+		.opcode = FUSE_SYMLINK,
+		.in_numargs = 2,
+		.in_args[0] = (struct fuse_bpf_in_arg) {
+			.size = entry->d_name.len + 1,
+			.value = entry->d_name.name,
+		},
+		.in_args[1] = (struct fuse_bpf_in_arg) {
+			.size = len,
+			.value = link,
+		},
+	};
+
+	return 0;
+}
+
+int fuse_symlink_backing(
+		struct fuse_bpf_args *fa,
+		struct inode *dir, struct dentry *entry, const char *link, int len)
+{
+	int err = 0;
+	struct fuse_inode *fuse_inode = get_fuse_inode(dir);
+	struct inode *backing_inode = fuse_inode->backing_inode;
+	struct path backing_path = {};
+	struct inode *inode = NULL;
+
+	//TODO Actually deal with changing the backing entry in symlink
+	get_fuse_backing_path(entry, &backing_path);
+	if (!backing_path.dentry)
+		return -EBADF;
+
+	inode_lock_nested(backing_inode, I_MUTEX_PARENT);
+	err = vfs_symlink(&init_user_ns, backing_inode, backing_path.dentry,
+			  link);
+	inode_unlock(backing_inode);
+	if (err)
+		goto out;
+	if (d_really_is_negative(backing_path.dentry) ||
+		unlikely(d_unhashed(backing_path.dentry))) {
+		err = -EINVAL;
+		/**
+		 * TODO: overlayfs responds to this situation with a
+		 * lookupOneLen. Should we do that too?
+		 */
+		goto out;
+	}
+	inode = fuse_iget_backing(dir->i_sb, fuse_inode->nodeid, backing_inode);
+	if (IS_ERR(inode)) {
+		err = PTR_ERR(inode);
+		goto out;
+	}
+	d_instantiate(entry, inode);
+out:
+	path_put(&backing_path);
+	return err;
+}
+
+void *fuse_symlink_finalize(
+		struct fuse_bpf_args *fa,
+		struct inode *dir, struct dentry *entry, const char *link, int len)
+{
+	return NULL;
+}
+
+int fuse_readdir_initialize(struct fuse_bpf_args *fa, struct fuse_read_io *frio,
+			    struct file *file, struct dir_context *ctx,
+			    bool *force_again, bool *allow_force, bool is_continued)
+{
+	struct fuse_file *ff = file->private_data;
+	u8 *page = (u8 *)__get_free_page(GFP_KERNEL);
+
+	if (!page)
+		return -ENOMEM;
+
+	*fa = (struct fuse_bpf_args) {
+		.nodeid = ff->nodeid,
+		.opcode = FUSE_READDIR,
+		.in_numargs = 1,
+		.flags = FUSE_BPF_OUT_ARGVAR,
+		.out_numargs = 2,
+		.in_args[0] = (struct fuse_bpf_in_arg) {
+			.size = sizeof(frio->fri),
+			.value = &frio->fri,
+		},
+		.out_args[0] = (struct fuse_bpf_arg) {
+			.size = sizeof(frio->fro),
+			.value = &frio->fro,
+		},
+		.out_args[1] = (struct fuse_bpf_arg) {
+			.size = PAGE_SIZE,
+			.value = page,
+		},
+	};
+
+	frio->fri = (struct fuse_read_in) {
+		.fh = ff->fh,
+		.offset = ctx->pos,
+		.size = PAGE_SIZE,
+	};
+	frio->fro = (struct fuse_read_out) {
+		.again = 0,
+		.offset = 0,
+	};
+	*force_again = false;
+	*allow_force = true;
+	return 0;
+}
+
+struct extfuse_ctx {
+	struct dir_context ctx;
+	u8 *addr;
+	size_t offset;
+};
+
+static int filldir(struct dir_context *ctx, const char *name, int namelen,
+				   loff_t offset, u64 ino, unsigned int d_type)
+{
+	struct extfuse_ctx *ec = container_of(ctx, struct extfuse_ctx, ctx);
+	struct fuse_dirent *fd = (struct fuse_dirent *) (ec->addr + ec->offset);
+
+	if (ec->offset + sizeof(struct fuse_dirent) + namelen > PAGE_SIZE)
+		return -ENOMEM;
+
+	*fd = (struct fuse_dirent) {
+		.ino = ino,
+		.off = offset,
+		.namelen = namelen,
+		.type = d_type,
+	};
+
+	memcpy(fd->name, name, namelen);
+	ec->offset += FUSE_DIRENT_SIZE(fd);
+
+	return 0;
+}
+
+static int parse_dirfile(char *buf, size_t nbytes, struct dir_context *ctx)
+{
+	while (nbytes >= FUSE_NAME_OFFSET) {
+		struct fuse_dirent *dirent = (struct fuse_dirent *) buf;
+		size_t reclen = FUSE_DIRENT_SIZE(dirent);
+
+		if (!dirent->namelen || dirent->namelen > FUSE_NAME_MAX)
+			return -EIO;
+		if (reclen > nbytes)
+			break;
+		if (memchr(dirent->name, '/', dirent->namelen) != NULL)
+			return -EIO;
+
+		ctx->pos = dirent->off;
+		if (!dir_emit(ctx, dirent->name, dirent->namelen, dirent->ino,
+				dirent->type))
+			break;
+
+		buf += reclen;
+		nbytes -= reclen;
+	}
+
+	return 0;
+}
+
+
+int fuse_readdir_backing(struct fuse_bpf_args *fa,
+			 struct file *file, struct dir_context *ctx,
+			 bool *force_again, bool *allow_force, bool is_continued)
+{
+	struct fuse_file *ff = file->private_data;
+	struct file *backing_dir = ff->backing_file;
+	struct fuse_read_out *fro = fa->out_args[0].value;
+	struct extfuse_ctx ec;
+	int err;
+
+	ec = (struct extfuse_ctx) {
+		.ctx.actor = filldir,
+		.ctx.pos = ctx->pos,
+		.addr = fa->out_args[1].value,
+	};
+
+	if (!ec.addr)
+		return -ENOMEM;
+
+	if (!is_continued)
+		backing_dir->f_pos = file->f_pos;
+
+	err = iterate_dir(backing_dir, &ec.ctx);
+	if (ec.offset == 0)
+		*allow_force = false;
+	fa->out_args[1].size = ec.offset;
+
+	fro->offset = ec.ctx.pos;
+	fro->again = false;
+	return err;
+}
+
+void *fuse_readdir_finalize(struct fuse_bpf_args *fa,
+			    struct file *file, struct dir_context *ctx,
+			    bool *force_again, bool *allow_force, bool is_continued)
+{
+	struct fuse_read_out *fro = fa->out_args[0].value;
+	struct fuse_file *ff = file->private_data;
+	struct file *backing_dir = ff->backing_file;
+	int err = 0;
+
+	err = parse_dirfile(fa->out_args[1].value, fa->out_args[1].size, ctx);
+	*force_again = !!fro->again;
+	if (*force_again && !*allow_force)
+		err = -EINVAL;
+
+	ctx->pos = fro->offset;
+	backing_dir->f_pos = fro->offset;
+
+	free_page((unsigned long) fa->out_args[1].value);
+	return ERR_PTR(err);
+}
+
+int fuse_access_initialize(struct fuse_bpf_args *fa, struct fuse_access_in *fai,
+			    struct inode *inode, int mask)
+{
+	*fai = (struct fuse_access_in) {
+		.mask = mask,
+	};
+
+	*fa = (struct fuse_bpf_args) {
+		.opcode = FUSE_ACCESS,
+		.nodeid = get_node_id(inode),
+		.in_numargs = 1,
+		.in_args[0].size = sizeof(*fai),
+		.in_args[0].value = fai,
+	};
+
+	return 0;
+}
+
+int fuse_access_backing(struct fuse_bpf_args *fa, struct inode *inode, int mask)
+{
+	struct fuse_inode *fi = get_fuse_inode(inode);
+	const struct fuse_access_in *fai = fa->in_args[0].value;
+
+	return inode_permission(&init_user_ns, fi->backing_inode, fai->mask);
+}
+
+void *fuse_access_finalize(struct fuse_bpf_args *fa, struct inode *inode, int mask)
+{
+	return NULL;
+}
+
+int __init fuse_bpf_init(void)
+{
+	fuse_bpf_aio_request_cachep = kmem_cache_create("fuse_bpf_aio_req",
+						   sizeof(struct fuse_bpf_aio_req),
+						   0, SLAB_HWCACHE_ALIGN, NULL);
+	if (!fuse_bpf_aio_request_cachep)
+		return -ENOMEM;
+
+	return 0;
+}
+
+void __exit fuse_bpf_cleanup(void)
+{
+	kmem_cache_destroy(fuse_bpf_aio_request_cachep);
+}
+
+ssize_t fuse_bpf_simple_request(struct fuse_mount *fm, struct fuse_bpf_args *bpf_args)
+{
+	int i;
+	ssize_t res;
+	struct fuse_args args = {
+		.nodeid = bpf_args->nodeid,
+		.opcode = bpf_args->opcode,
+		.error_in = bpf_args->error_in,
+		.in_numargs = bpf_args->in_numargs,
+		.out_numargs = bpf_args->out_numargs,
+		.force = !!(bpf_args->flags & FUSE_BPF_FORCE),
+		.out_argvar = !!(bpf_args->flags & FUSE_BPF_OUT_ARGVAR),
+	};
+
+	for (i = 0; i < args.in_numargs; ++i)
+		args.in_args[i] = (struct fuse_in_arg) {
+			.size = bpf_args->in_args[i].size,
+			.value = bpf_args->in_args[i].value,
+		};
+	for (i = 0; i < args.out_numargs; ++i)
+		args.out_args[i] = (struct fuse_arg) {
+			.size = bpf_args->out_args[i].size,
+			.value = bpf_args->out_args[i].value,
+		};
+
+	res = fuse_simple_request(fm, &args);
+
+	*bpf_args = (struct fuse_bpf_args) {
+		.nodeid = args.nodeid,
+		.opcode = args.opcode,
+		.error_in = args.error_in,
+		.in_numargs = args.in_numargs,
+		.out_numargs = args.out_numargs,
+	};
+	if (args.force)
+		bpf_args->flags |= FUSE_BPF_FORCE;
+	if (args.out_argvar)
+		bpf_args->flags |= FUSE_BPF_OUT_ARGVAR;
+	for (i = 0; i < args.in_numargs; ++i)
+		bpf_args->in_args[i] = (struct fuse_bpf_in_arg) {
+			.size = args.in_args[i].size,
+			.value = args.in_args[i].value,
+		};
+	for (i = 0; i < args.out_numargs; ++i)
+		bpf_args->out_args[i] = (struct fuse_bpf_arg) {
+			.size = args.out_args[i].size,
+			.value = args.out_args[i].value,
+		};
+	return res;
+}
diff --git a/fs/fuse/control.c b/fs/fuse/control.c
index 79f01d0..4aae0e6 100644
--- a/fs/fuse/control.c
+++ b/fs/fuse/control.c
@@ -395,7 +395,7 @@
 	return register_filesystem(&fuse_ctl_fs_type);
 }
 
-void __exit fuse_ctl_cleanup(void)
+void fuse_ctl_cleanup(void)
 {
 	unregister_filesystem(&fuse_ctl_fs_type);
 }
diff --git a/fs/fuse/dev.c b/fs/fuse/dev.c
index 9f7af04..cb26f9a 100644
--- a/fs/fuse/dev.c
+++ b/fs/fuse/dev.c
@@ -242,6 +242,11 @@
 {
 	struct fuse_iqueue *fiq = &fc->iq;
 
+	if (nodeid == 0) {
+		kfree(forget);
+		return;
+	}
+
 	forget->forget_one.nodeid = nodeid;
 	forget->forget_one.nlookup = nlookup;
 
@@ -483,6 +488,7 @@
 {
 	req->in.h.opcode = args->opcode;
 	req->in.h.nodeid = args->nodeid;
+	req->in.h.padding = args->error_in;
 	req->args = args;
 	if (args->end)
 		__set_bit(FR_ASYNC, &req->flags);
@@ -1943,6 +1949,19 @@
 			kern_path(path, 0, req->args->canonical_path);
 	}
 
+	if (!err && (req->in.h.opcode == FUSE_LOOKUP ||
+		     req->in.h.opcode == (FUSE_LOOKUP | FUSE_POSTFILTER)) &&
+		req->args->out_args[1].size == sizeof(struct fuse_entry_bpf_out)) {
+		struct fuse_entry_bpf_out *febo = (struct fuse_entry_bpf_out *)
+				req->args->out_args[1].value;
+		struct fuse_entry_bpf *feb = container_of(febo, struct fuse_entry_bpf, out);
+
+		if (febo->backing_action == FUSE_ACTION_REPLACE)
+			feb->backing_file = fget(febo->backing_fd);
+		if (febo->bpf_action == FUSE_ACTION_REPLACE)
+			feb->bpf_file = fget(febo->bpf_fd);
+	}
+
 	spin_lock(&fpq->lock);
 	clear_bit(FR_LOCKED, &req->flags);
 	if (!fpq->connected)
diff --git a/fs/fuse/dir.c b/fs/fuse/dir.c
index ddb71891..3cb1de1e 100644
--- a/fs/fuse/dir.c
+++ b/fs/fuse/dir.c
@@ -8,8 +8,10 @@
 
 #include "fuse_i.h"
 
+#include <linux/fdtable.h>
 #include <linux/pagemap.h>
 #include <linux/file.h>
+#include <linux/filter.h>
 #include <linux/fs_context.h>
 #include <linux/sched.h>
 #include <linux/namei.h>
@@ -21,6 +23,8 @@
 #include <linux/types.h>
 #include <linux/kernel.h>
 
+#include "../internal.h"
+
 static void fuse_advise_use_readdirplus(struct inode *dir)
 {
 	struct fuse_inode *fi = get_fuse_inode(dir);
@@ -28,7 +32,7 @@
 	set_bit(FUSE_I_ADVISE_RDPLUS, &fi->state);
 }
 
-#if BITS_PER_LONG >= 64
+#if BITS_PER_LONG >= 64 && !defined(CONFIG_FUSE_BPF)
 static inline void __fuse_dentry_settime(struct dentry *entry, u64 time)
 {
 	entry->d_fsdata = (void *) time;
@@ -40,19 +44,15 @@
 }
 
 #else
-union fuse_dentry {
-	u64 time;
-	struct rcu_head rcu;
-};
 
 static inline void __fuse_dentry_settime(struct dentry *dentry, u64 time)
 {
-	((union fuse_dentry *) dentry->d_fsdata)->time = time;
+	((struct fuse_dentry *) dentry->d_fsdata)->time = time;
 }
 
 static inline u64 fuse_dentry_time(const struct dentry *entry)
 {
-	return ((union fuse_dentry *) entry->d_fsdata)->time;
+	return ((struct fuse_dentry *) entry->d_fsdata)->time;
 }
 #endif
 
@@ -77,26 +77,16 @@
 	__fuse_dentry_settime(dentry, time);
 }
 
-/*
- * FUSE caches dentries and attributes with separate timeout.  The
- * time in jiffies until the dentry/attributes are valid is stored in
- * dentry->d_fsdata and fuse_inode->i_time respectively.
- */
-
-/*
- * Calculate the time in jiffies until a dentry/attributes are valid
- */
-static u64 time_to_jiffies(u64 sec, u32 nsec)
+void fuse_init_dentry_root(struct dentry *root, struct file *backing_dir)
 {
-	if (sec || nsec) {
-		struct timespec64 ts = {
-			sec,
-			min_t(u32, nsec, NSEC_PER_SEC - 1)
-		};
+#ifdef CONFIG_FUSE_BPF
+	struct fuse_dentry *fuse_dentry = root->d_fsdata;
 
-		return get_jiffies_64() + timespec64_to_jiffies(&ts);
-	} else
-		return 0;
+	if (backing_dir) {
+		fuse_dentry->backing_path = backing_dir->f_path;
+		path_get(&fuse_dentry->backing_path);
+	}
+#endif
 }
 
 /*
@@ -109,11 +99,6 @@
 		time_to_jiffies(o->entry_valid, o->entry_valid_nsec));
 }
 
-static u64 attr_timeout(struct fuse_attr_out *o)
-{
-	return time_to_jiffies(o->attr_valid, o->attr_valid_nsec);
-}
-
 u64 entry_attr_timeout(struct fuse_entry_out *o)
 {
 	return time_to_jiffies(o->attr_valid, o->attr_valid_nsec);
@@ -174,7 +159,8 @@
 
 static void fuse_lookup_init(struct fuse_conn *fc, struct fuse_args *args,
 			     u64 nodeid, const struct qstr *name,
-			     struct fuse_entry_out *outarg)
+			     struct fuse_entry_out *outarg,
+			     struct fuse_entry_bpf_out *bpf_outarg)
 {
 	memset(outarg, 0, sizeof(struct fuse_entry_out));
 	args->opcode = FUSE_LOOKUP;
@@ -182,11 +168,52 @@
 	args->in_numargs = 1;
 	args->in_args[0].size = name->len + 1;
 	args->in_args[0].value = name->name;
-	args->out_numargs = 1;
+	args->out_argvar = true;
+	args->out_numargs = 2;
 	args->out_args[0].size = sizeof(struct fuse_entry_out);
 	args->out_args[0].value = outarg;
+	args->out_args[1].size = sizeof(struct fuse_entry_bpf_out);
+	args->out_args[1].value = bpf_outarg;
 }
 
+#ifdef CONFIG_FUSE_BPF
+static bool backing_data_changed(struct fuse_inode *fi, struct dentry *entry,
+				 struct fuse_entry_bpf *bpf_arg)
+{
+	struct path new_backing_path;
+	struct inode *new_backing_inode;
+	struct bpf_prog *bpf = NULL;
+	int err;
+	bool ret = true;
+
+	if (!entry)
+		return false;
+
+	get_fuse_backing_path(entry, &new_backing_path);
+	new_backing_inode = fi->backing_inode;
+	ihold(new_backing_inode);
+
+	err = fuse_handle_backing(bpf_arg, &new_backing_inode, &new_backing_path);
+
+	if (err)
+		goto put_inode;
+
+	err = fuse_handle_bpf_prog(bpf_arg, entry->d_parent->d_inode, &bpf);
+	if (err)
+		goto put_bpf;
+
+	ret = (bpf != fi->bpf || fi->backing_inode != new_backing_inode ||
+			!path_equal(&get_fuse_dentry(entry)->backing_path, &new_backing_path));
+put_bpf:
+	if (bpf)
+		bpf_prog_put(bpf);
+put_inode:
+	iput(new_backing_inode);
+	path_put(&new_backing_path);
+	return ret;
+}
+#endif
+
 /*
  * Check whether the dentry is still valid
  *
@@ -207,9 +234,23 @@
 	inode = d_inode_rcu(entry);
 	if (inode && fuse_is_bad(inode))
 		goto invalid;
-	else if (time_before64(fuse_dentry_time(entry), get_jiffies_64()) ||
+
+#ifdef CONFIG_FUSE_BPF
+	/* TODO: Do we need bpf support for revalidate?
+	 * If the lower filesystem says the entry is invalid, FUSE probably shouldn't
+	 * try to fix that without going through the normal lookup path...
+	 */
+	if (get_fuse_dentry(entry)->backing_path.dentry) {
+		ret = fuse_revalidate_backing(entry, flags);
+		if (ret <= 0) {
+			goto out;
+		}
+	}
+#endif
+	if (time_before64(fuse_dentry_time(entry), get_jiffies_64()) ||
 		 (flags & (LOOKUP_EXCL | LOOKUP_REVAL))) {
 		struct fuse_entry_out outarg;
+		struct fuse_entry_bpf bpf_arg;
 		FUSE_ARGS(args);
 		struct fuse_forget_link *forget;
 		u64 attr_version;
@@ -221,27 +262,44 @@
 		ret = -ECHILD;
 		if (flags & LOOKUP_RCU)
 			goto out;
-
 		fm = get_fuse_mount(inode);
 
+		parent = dget_parent(entry);
+
+#ifdef CONFIG_FUSE_BPF
+		/* TODO: Once we're handling timeouts for backing inodes, do a
+		 * bpf based lookup_revalidate here.
+		 */
+		if (get_fuse_inode(parent->d_inode)->backing_inode) {
+			dput(parent);
+			ret = 1;
+			goto out;
+		}
+#endif
 		forget = fuse_alloc_forget();
 		ret = -ENOMEM;
-		if (!forget)
+		if (!forget) {
+			dput(parent);
 			goto out;
+		}
 
 		attr_version = fuse_get_attr_version(fm->fc);
 
-		parent = dget_parent(entry);
 		fuse_lookup_init(fm->fc, &args, get_node_id(d_inode(parent)),
-				 &entry->d_name, &outarg);
+				 &entry->d_name, &outarg, &bpf_arg.out);
 		ret = fuse_simple_request(fm, &args);
 		dput(parent);
+
 		/* Zero nodeid is same as -ENOENT */
 		if (!ret && !outarg.nodeid)
 			ret = -ENOENT;
-		if (!ret) {
+		if (!ret || ret == sizeof(bpf_arg.out)) {
 			fi = get_fuse_inode(inode);
 			if (outarg.nodeid != get_node_id(inode) ||
+#ifdef CONFIG_FUSE_BPF
+			    (ret == sizeof(bpf_arg.out) &&
+					    backing_data_changed(fi, entry, &bpf_arg)) ||
+#endif
 			    (bool) IS_AUTOMOUNT(inode) != (bool) (outarg.attr.flags & FUSE_ATTR_SUBMOUNT)) {
 				fuse_queue_forget(fm->fc, forget,
 						  outarg.nodeid, 1);
@@ -283,17 +341,20 @@
 	goto out;
 }
 
-#if BITS_PER_LONG < 64
+#if BITS_PER_LONG < 64 || defined(CONFIG_FUSE_BPF)
 static int fuse_dentry_init(struct dentry *dentry)
 {
-	dentry->d_fsdata = kzalloc(sizeof(union fuse_dentry),
+	dentry->d_fsdata = kzalloc(sizeof(struct fuse_dentry),
 				   GFP_KERNEL_ACCOUNT | __GFP_RECLAIMABLE);
 
 	return dentry->d_fsdata ? 0 : -ENOMEM;
 }
 static void fuse_dentry_release(struct dentry *dentry)
 {
-	union fuse_dentry *fd = dentry->d_fsdata;
+	struct fuse_dentry *fd = dentry->d_fsdata;
+
+	if (fd && fd->backing_path.dentry)
+		path_put(&fd->backing_path);
 
 	kfree_rcu(fd, rcu);
 }
@@ -347,6 +408,18 @@
 	char *path_name;
 	int err;
 
+#ifdef CONFIG_FUSE_BPF
+	struct fuse_err_ret fer;
+
+	fer = fuse_bpf_backing(inode, struct fuse_dummy_io,
+			       fuse_canonical_path_initialize,
+			       fuse_canonical_path_backing,
+			       fuse_canonical_path_finalize, path,
+			       canonical_path);
+	if (fer.ret)
+		return;
+#endif
+
 	path_name = (char *)get_zeroed_page(GFP_KERNEL);
 	if (!path_name)
 		goto default_path;
@@ -373,7 +446,7 @@
 const struct dentry_operations fuse_dentry_operations = {
 	.d_revalidate	= fuse_dentry_revalidate,
 	.d_delete	= fuse_dentry_delete,
-#if BITS_PER_LONG < 64
+#if BITS_PER_LONG < 64 || defined(CONFIG_FUSE_BPF)
 	.d_init		= fuse_dentry_init,
 	.d_release	= fuse_dentry_release,
 #endif
@@ -382,7 +455,7 @@
 };
 
 const struct dentry_operations fuse_root_dentry_operations = {
-#if BITS_PER_LONG < 64
+#if BITS_PER_LONG < 64 || defined(CONFIG_FUSE_BPF)
 	.d_init		= fuse_dentry_init,
 	.d_release	= fuse_dentry_release,
 #endif
@@ -401,10 +474,13 @@
 }
 
 int fuse_lookup_name(struct super_block *sb, u64 nodeid, const struct qstr *name,
-		     struct fuse_entry_out *outarg, struct inode **inode)
+		     struct fuse_entry_out *outarg,
+		     struct dentry *entry,
+		     struct inode **inode)
 {
 	struct fuse_mount *fm = get_fuse_mount_super(sb);
 	FUSE_ARGS(args);
+	struct fuse_entry_bpf bpf_arg = {0};
 	struct fuse_forget_link *forget;
 	u64 attr_version;
 	int err;
@@ -422,23 +498,68 @@
 
 	attr_version = fuse_get_attr_version(fm->fc);
 
-	fuse_lookup_init(fm->fc, &args, nodeid, name, outarg);
+	fuse_lookup_init(fm->fc, &args, nodeid, name, outarg, &bpf_arg.out);
 	err = fuse_simple_request(fm, &args);
-	/* Zero nodeid is same as -ENOENT, but with valid timeout */
-	if (err || !outarg->nodeid)
-		goto out_put_forget;
 
-	err = -EIO;
-	if (!outarg->nodeid)
-		goto out_put_forget;
-	if (fuse_invalid_attr(&outarg->attr))
-		goto out_put_forget;
+#ifdef CONFIG_FUSE_BPF
+	if (err == sizeof(bpf_arg.out)) {
+		/* TODO Make sure this handles invalid handles */
+		struct file *backing_file;
+		struct inode *backing_inode;
 
-	*inode = fuse_iget(sb, outarg->nodeid, outarg->generation,
-			   &outarg->attr, entry_attr_timeout(outarg),
-			   attr_version);
+		err = -ENOENT;
+		if (!entry)
+			goto out_queue_forget;
+
+		err = -EINVAL;
+		backing_file = bpf_arg.backing_file;
+		if (!backing_file)
+			goto out_queue_forget;
+
+		if (IS_ERR(backing_file)) {
+			err = PTR_ERR(backing_file);
+			goto out_queue_forget;
+		}
+
+		backing_inode = backing_file->f_inode;
+		*inode = fuse_iget_backing(sb, outarg->nodeid, backing_inode);
+		if (!*inode)
+			goto bpf_arg_out;
+
+		err = fuse_handle_backing(&bpf_arg,
+				&get_fuse_inode(*inode)->backing_inode,
+				&get_fuse_dentry(entry)->backing_path);
+		if (err)
+			goto out;
+
+		err = fuse_handle_bpf_prog(&bpf_arg, NULL, &get_fuse_inode(*inode)->bpf);
+		if (err)
+			goto out;
+bpf_arg_out:
+		fput(backing_file);
+	} else
+#endif
+	{
+		/* Zero nodeid is same as -ENOENT, but with valid timeout */
+		if (err || !outarg->nodeid)
+			goto out_put_forget;
+
+		err = -EIO;
+		if (!outarg->nodeid)
+			goto out_put_forget;
+		if (fuse_invalid_attr(&outarg->attr))
+			goto out_put_forget;
+
+		*inode = fuse_iget(sb, outarg->nodeid, outarg->generation,
+				   &outarg->attr, entry_attr_timeout(outarg),
+				   attr_version);
+	}
+
 	err = -ENOMEM;
-	if (!*inode) {
+#ifdef CONFIG_FUSE_BPF
+out_queue_forget:
+#endif
+	if (!*inode && outarg->nodeid) {
 		fuse_queue_forget(fm->fc, forget, outarg->nodeid, 1);
 		goto out;
 	}
@@ -460,12 +581,23 @@
 	bool outarg_valid = true;
 	bool locked;
 
+#ifdef CONFIG_FUSE_BPF
+	struct fuse_err_ret fer;
+
+	fer = fuse_bpf_backing(dir, struct fuse_lookup_io,
+			       fuse_lookup_initialize, fuse_lookup_backing,
+			       fuse_lookup_finalize,
+			       dir, entry, flags);
+	if (fer.ret)
+		return fer.result;
+#endif
+
 	if (fuse_is_bad(dir))
 		return ERR_PTR(-EIO);
 
 	locked = fuse_lock_inode(dir);
 	err = fuse_lookup_name(dir->i_sb, get_node_id(dir), &entry->d_name,
-			       &outarg, &inode);
+			       &outarg, entry, &inode);
 	fuse_unlock_inode(dir, locked);
 	if (err == -ENOENT) {
 		outarg_valid = false;
@@ -582,6 +714,20 @@
 	/* Userspace expects S_IFREG in create mode */
 	BUG_ON((mode & S_IFMT) != S_IFREG);
 
+#ifdef CONFIG_FUSE_BPF
+	{
+		struct fuse_err_ret fer;
+
+		fer = fuse_bpf_backing(dir, struct fuse_create_open_io,
+				       fuse_create_open_initialize,
+				       fuse_create_open_backing,
+				       fuse_create_open_finalize,
+				       dir, entry, file, flags, mode);
+		if (fer.ret)
+			return PTR_ERR(fer.result);
+	}
+#endif
+
 	forget = fuse_alloc_forget();
 	err = -ENOMEM;
 	if (!forget)
@@ -811,6 +957,17 @@
 	struct fuse_mount *fm = get_fuse_mount(dir);
 	FUSE_ARGS(args);
 
+#ifdef CONFIG_FUSE_BPF
+	struct fuse_err_ret fer;
+
+	fer = fuse_bpf_backing(dir, struct fuse_mknod_in,
+			fuse_mknod_initialize, fuse_mknod_backing,
+			fuse_mknod_finalize,
+			dir, entry, mode, rdev);
+	if (fer.ret)
+		return PTR_ERR(fer.result);
+#endif
+
 	if (!fm->fc->dont_mask)
 		mode &= ~current_umask();
 
@@ -840,6 +997,17 @@
 	struct fuse_mount *fm = get_fuse_mount(dir);
 	FUSE_ARGS(args);
 
+#ifdef CONFIG_FUSE_BPF
+	struct fuse_err_ret fer;
+
+	fer = fuse_bpf_backing(dir, struct fuse_mkdir_in,
+			fuse_mkdir_initialize, fuse_mkdir_backing,
+			fuse_mkdir_finalize,
+			dir, entry, mode);
+	if (fer.ret)
+		return PTR_ERR(fer.result);
+#endif
+
 	if (!fm->fc->dont_mask)
 		mode &= ~current_umask();
 
@@ -862,6 +1030,17 @@
 	unsigned len = strlen(link) + 1;
 	FUSE_ARGS(args);
 
+#ifdef CONFIG_FUSE_BPF
+	struct fuse_err_ret fer;
+
+	fer = fuse_bpf_backing(dir, struct fuse_dummy_io,
+			fuse_symlink_initialize, fuse_symlink_backing,
+			fuse_symlink_finalize,
+			dir, entry, link, len);
+	if (fer.ret)
+		return PTR_ERR(fer.result);
+#endif
+
 	args.opcode = FUSE_SYMLINK;
 	args.in_numargs = 2;
 	args.in_args[0].size = entry->d_name.len + 1;
@@ -896,6 +1075,20 @@
 	if (fuse_is_bad(dir))
 		return -EIO;
 
+#ifdef CONFIG_FUSE_BPF
+	{
+		struct fuse_err_ret fer;
+
+		fer = fuse_bpf_backing(dir, struct fuse_dummy_io,
+					fuse_unlink_initialize,
+					fuse_unlink_backing,
+					fuse_unlink_finalize,
+					dir, entry);
+		if (fer.ret)
+			return PTR_ERR(fer.result);
+	}
+#endif
+
 	args.opcode = FUSE_UNLINK;
 	args.nodeid = get_node_id(dir);
 	args.in_numargs = 1;
@@ -935,6 +1128,20 @@
 	if (fuse_is_bad(dir))
 		return -EIO;
 
+#ifdef CONFIG_FUSE_BPF
+	{
+		struct fuse_err_ret fer;
+
+		fer = fuse_bpf_backing(dir, struct fuse_dummy_io,
+					fuse_rmdir_initialize,
+					fuse_rmdir_backing,
+					fuse_rmdir_finalize,
+					dir, entry);
+		if (fer.ret)
+			return PTR_ERR(fer.result);
+	}
+#endif
+
 	args.opcode = FUSE_RMDIR;
 	args.nodeid = get_node_id(dir);
 	args.in_numargs = 1;
@@ -1020,6 +1227,18 @@
 		return -EINVAL;
 
 	if (flags) {
+#ifdef CONFIG_FUSE_BPF
+		struct fuse_err_ret fer;
+
+		fer = fuse_bpf_backing(olddir, struct fuse_rename2_in,
+						fuse_rename2_initialize, fuse_rename2_backing,
+						fuse_rename2_finalize,
+						olddir, oldent, newdir, newent, flags);
+		if (fer.ret)
+			return PTR_ERR(fer.result);
+#endif
+
+		/* TODO: how should this go with bpfs involved? */
 		if (fc->no_rename2 || fc->minor < 23)
 			return -EINVAL;
 
@@ -1031,6 +1250,17 @@
 			err = -EINVAL;
 		}
 	} else {
+#ifdef CONFIG_FUSE_BPF
+		struct fuse_err_ret fer;
+
+		fer = fuse_bpf_backing(olddir, struct fuse_rename_in,
+						fuse_rename_initialize, fuse_rename_backing,
+						fuse_rename_finalize,
+						olddir, oldent, newdir, newent);
+		if (fer.ret)
+			return PTR_ERR(fer.result);
+#endif
+
 		err = fuse_rename_common(olddir, oldent, newdir, newent, 0,
 					 FUSE_RENAME,
 					 sizeof(struct fuse_rename_in));
@@ -1048,6 +1278,16 @@
 	struct fuse_mount *fm = get_fuse_mount(inode);
 	FUSE_ARGS(args);
 
+#ifdef CONFIG_FUSE_BPF
+	struct fuse_err_ret fer;
+
+	fer = fuse_bpf_backing(inode, struct fuse_link_in, fuse_link_initialize,
+			       fuse_link_backing, fuse_link_finalize, entry,
+			       newdir, newent);
+	if (fer.ret)
+		return PTR_ERR(fer.result);
+#endif
+
 	memset(&inarg, 0, sizeof(inarg));
 	inarg.oldnodeid = get_node_id(inode);
 	args.opcode = FUSE_LINK;
@@ -1079,7 +1319,7 @@
 	return err;
 }
 
-static void fuse_fillattr(struct inode *inode, struct fuse_attr *attr,
+void fuse_fillattr(struct inode *inode, struct fuse_attr *attr,
 			  struct kstat *stat)
 {
 	unsigned int blkbits;
@@ -1148,23 +1388,13 @@
 	args.out_args[0].size = sizeof(outarg);
 	args.out_args[0].value = &outarg;
 	err = fuse_simple_request(fm, &args);
-	if (!err) {
-		if (fuse_invalid_attr(&outarg.attr) ||
-		    inode_wrong_type(inode, outarg.attr.mode)) {
-			fuse_make_bad(inode);
-			err = -EIO;
-		} else {
-			fuse_change_attributes(inode, &outarg.attr,
-					       attr_timeout(&outarg),
-					       attr_version);
-			if (stat)
-				fuse_fillattr(inode, &outarg.attr, stat);
-		}
-	}
+	if (!err)
+		err = finalize_attr(inode, &outarg, attr_version, stat);
 	return err;
 }
 
 static int fuse_update_get_attr(struct inode *inode, struct file *file,
+				const struct path *path,
 				struct kstat *stat, u32 request_mask,
 				unsigned int flags)
 {
@@ -1172,6 +1402,17 @@
 	int err = 0;
 	bool sync;
 
+#ifdef CONFIG_FUSE_BPF
+	struct fuse_err_ret fer;
+
+	fer = fuse_bpf_backing(inode, struct fuse_getattr_io,
+			       fuse_getattr_initialize,	fuse_getattr_backing,
+			       fuse_getattr_finalize,
+			       path->dentry, stat, request_mask, flags);
+	if (fer.ret)
+		return PTR_ERR(fer.result);
+#endif
+
 	if (flags & AT_STATX_FORCE_SYNC)
 		sync = true;
 	else if (flags & AT_STATX_DONT_SYNC)
@@ -1196,7 +1437,7 @@
 int fuse_update_attributes(struct inode *inode, struct file *file)
 {
 	/* Do *not* need to get atime for internal purposes */
-	return fuse_update_get_attr(inode, file, NULL,
+	return fuse_update_get_attr(inode, file, &file->f_path, NULL,
 				    STATX_BASIC_STATS & ~STATX_ATIME, 0);
 }
 
@@ -1305,6 +1546,16 @@
 	struct fuse_access_in inarg;
 	int err;
 
+#ifdef CONFIG_FUSE_BPF
+	struct fuse_err_ret fer;
+
+	fer = fuse_bpf_backing(inode, struct fuse_access_in,
+			       fuse_access_initialize, fuse_access_backing,
+			       fuse_access_finalize, inode, mask);
+	if (fer.ret)
+		return PTR_ERR(fer.result);
+#endif
+
 	BUG_ON(mask & MAY_NOT_BLOCK);
 
 	if (fm->fc->no_access)
@@ -1353,6 +1604,10 @@
 	struct fuse_conn *fc = get_fuse_conn(inode);
 	bool refreshed = false;
 	int err = 0;
+	struct fuse_inode *fi = get_fuse_inode(inode);
+#ifdef CONFIG_FUSE_BPF
+	struct fuse_err_ret fer;
+#endif
 
 	if (fuse_is_bad(inode))
 		return -EIO;
@@ -1360,12 +1615,19 @@
 	if (!fuse_allow_current_process(fc))
 		return -EACCES;
 
+#ifdef CONFIG_FUSE_BPF
+	fer = fuse_bpf_backing(inode, struct fuse_access_in,
+			       fuse_access_initialize, fuse_access_backing,
+			       fuse_access_finalize, inode, mask);
+	if (fer.ret)
+		return PTR_ERR(fer.result);
+#endif
+
 	/*
 	 * If attributes are needed, refresh them before proceeding
 	 */
 	if (fc->default_permissions ||
 	    ((mask & MAY_EXEC) && S_ISREG(inode->i_mode))) {
-		struct fuse_inode *fi = get_fuse_inode(inode);
 		u32 perm_mask = STATX_MODE | STATX_UID | STATX_GID;
 
 		if (perm_mask & READ_ONCE(fi->inval_mask) ||
@@ -1456,6 +1718,21 @@
 	if (fuse_is_bad(inode))
 		goto out_err;
 
+#ifdef CONFIG_FUSE_BPF
+	{
+		struct fuse_err_ret fer;
+		const char *out = NULL;
+
+		fer = fuse_bpf_backing(inode, struct fuse_dummy_io,
+				       fuse_get_link_initialize,
+				       fuse_get_link_backing,
+				       fuse_get_link_finalize,
+				       inode, dentry, callback, &out);
+		if (fer.ret)
+			return fer.result ?: out;
+	}
+#endif
+
 	if (fc->cache_symlinks)
 		return page_get_link(dentry, inode, callback);
 
@@ -1489,8 +1766,18 @@
 
 static int fuse_dir_release(struct inode *inode, struct file *file)
 {
-	fuse_release_common(file, true);
+#ifdef CONFIG_FUSE_BPF
+	struct fuse_err_ret fer;
 
+	fer = fuse_bpf_backing(inode, struct fuse_release_in,
+		       fuse_releasedir_initialize, fuse_release_backing,
+		       fuse_release_finalize,
+		       inode, file);
+	if (fer.ret)
+		return PTR_ERR(fer.result);
+#endif
+
+	fuse_release_common(file, true);
 	return 0;
 }
 
@@ -1504,6 +1791,19 @@
 	if (fuse_is_bad(inode))
 		return -EIO;
 
+#ifdef CONFIG_FUSE_BPF
+	{
+		struct fuse_err_ret fer;
+
+		fer = fuse_bpf_backing(inode, struct fuse_fsync_in,
+				fuse_dir_fsync_initialize, fuse_fsync_backing,
+				fuse_fsync_finalize,
+				file, start, end, datasync);
+		if (fer.ret)
+			return PTR_ERR(fer.result);
+	}
+#endif
+
 	if (fc->no_fsyncdir)
 		return 0;
 
@@ -1542,58 +1842,6 @@
 				 FUSE_IOCTL_COMPAT | FUSE_IOCTL_DIR);
 }
 
-static bool update_mtime(unsigned ivalid, bool trust_local_mtime)
-{
-	/* Always update if mtime is explicitly set  */
-	if (ivalid & ATTR_MTIME_SET)
-		return true;
-
-	/* Or if kernel i_mtime is the official one */
-	if (trust_local_mtime)
-		return true;
-
-	/* If it's an open(O_TRUNC) or an ftruncate(), don't update */
-	if ((ivalid & ATTR_SIZE) && (ivalid & (ATTR_OPEN | ATTR_FILE)))
-		return false;
-
-	/* In all other cases update */
-	return true;
-}
-
-static void iattr_to_fattr(struct fuse_conn *fc, struct iattr *iattr,
-			   struct fuse_setattr_in *arg, bool trust_local_cmtime)
-{
-	unsigned ivalid = iattr->ia_valid;
-
-	if (ivalid & ATTR_MODE)
-		arg->valid |= FATTR_MODE,   arg->mode = iattr->ia_mode;
-	if (ivalid & ATTR_UID)
-		arg->valid |= FATTR_UID,    arg->uid = from_kuid(fc->user_ns, iattr->ia_uid);
-	if (ivalid & ATTR_GID)
-		arg->valid |= FATTR_GID,    arg->gid = from_kgid(fc->user_ns, iattr->ia_gid);
-	if (ivalid & ATTR_SIZE)
-		arg->valid |= FATTR_SIZE,   arg->size = iattr->ia_size;
-	if (ivalid & ATTR_ATIME) {
-		arg->valid |= FATTR_ATIME;
-		arg->atime = iattr->ia_atime.tv_sec;
-		arg->atimensec = iattr->ia_atime.tv_nsec;
-		if (!(ivalid & ATTR_ATIME_SET))
-			arg->valid |= FATTR_ATIME_NOW;
-	}
-	if ((ivalid & ATTR_MTIME) && update_mtime(ivalid, trust_local_cmtime)) {
-		arg->valid |= FATTR_MTIME;
-		arg->mtime = iattr->ia_mtime.tv_sec;
-		arg->mtimensec = iattr->ia_mtime.tv_nsec;
-		if (!(ivalid & ATTR_MTIME_SET) && !trust_local_cmtime)
-			arg->valid |= FATTR_MTIME_NOW;
-	}
-	if ((ivalid & ATTR_CTIME) && trust_local_cmtime) {
-		arg->valid |= FATTR_CTIME;
-		arg->ctime = iattr->ia_ctime.tv_sec;
-		arg->ctimensec = iattr->ia_ctime.tv_nsec;
-	}
-}
-
 /*
  * Prevent concurrent writepages on inode
  *
@@ -1708,6 +1956,16 @@
 	bool trust_local_cmtime = is_wb && S_ISREG(inode->i_mode);
 	bool fault_blocked = false;
 
+#ifdef CONFIG_FUSE_BPF
+	struct fuse_err_ret fer;
+
+	fer = fuse_bpf_backing(inode, struct fuse_setattr_io,
+			       fuse_setattr_initialize, fuse_setattr_backing,
+			       fuse_setattr_finalize, dentry, attr, file);
+	if (fer.ret)
+		return PTR_ERR(fer.result);
+#endif
+
 	if (!fc->default_permissions)
 		attr->ia_valid |= ATTR_FORCE;
 
@@ -1882,11 +2140,22 @@
 		 * This should be done on write(), truncate() and chown().
 		 */
 		if (!fc->handle_killpriv && !fc->handle_killpriv_v2) {
+#ifdef CONFIG_FUSE_BPF
+			struct fuse_err_ret fer;
+
 			/*
 			 * ia_mode calculation may have used stale i_mode.
 			 * Refresh and recalculate.
 			 */
-			ret = fuse_do_getattr(inode, NULL, file);
+			fer = fuse_bpf_backing(inode, struct fuse_getattr_io,
+					       fuse_getattr_initialize,	fuse_getattr_backing,
+					       fuse_getattr_finalize,
+					       entry, NULL, 0, 0);
+			if (fer.ret)
+				ret = PTR_ERR(fer.result);
+			else
+#endif
+				ret = fuse_do_getattr(inode, NULL, file);
 			if (ret)
 				return ret;
 
@@ -1943,7 +2212,8 @@
 		return -EACCES;
 	}
 
-	return fuse_update_get_attr(inode, NULL, stat, request_mask, flags);
+	return fuse_update_get_attr(inode, NULL, path, stat, request_mask,
+				    flags);
 }
 
 static const struct inode_operations fuse_dir_inode_operations = {
diff --git a/fs/fuse/file.c b/fs/fuse/file.c
index 1a404d3..6149a4b 100644
--- a/fs/fuse/file.c
+++ b/fs/fuse/file.c
@@ -8,6 +8,7 @@
 
 #include "fuse_i.h"
 
+#include <linux/filter.h>
 #include <linux/pagemap.h>
 #include <linux/slab.h>
 #include <linux/kernel.h>
@@ -240,6 +241,20 @@
 	if (err)
 		return err;
 
+#ifdef CONFIG_FUSE_BPF
+	{
+		struct fuse_err_ret fer;
+
+		fer = fuse_bpf_backing(inode, struct fuse_open_io,
+				       fuse_open_initialize,
+				       fuse_open_backing,
+				       fuse_open_finalize,
+				       inode, file, isdir);
+		if (fer.ret)
+			return PTR_ERR(fer.result);
+	}
+#endif
+
 	if (is_wb_truncate || dax_truncate) {
 		inode_lock(inode);
 		fuse_set_nowrite(inode);
@@ -343,6 +358,17 @@
 {
 	struct fuse_conn *fc = get_fuse_conn(inode);
 
+#ifdef CONFIG_FUSE_BPF
+	struct fuse_err_ret fer;
+
+	fer = fuse_bpf_backing(inode, struct fuse_release_in,
+		       fuse_release_initialize, fuse_release_backing,
+		       fuse_release_finalize,
+		       inode, file);
+	if (fer.ret)
+		return PTR_ERR(fer.result);
+#endif
+
 	/* see fuse_vma_close() for !writeback_cache case */
 	if (fc->writeback_cache)
 		write_inode_now(inode, 1);
@@ -482,6 +508,17 @@
 	FUSE_ARGS(args);
 	int err;
 
+#ifdef CONFIG_FUSE_BPF
+	struct fuse_err_ret fer;
+
+	fer = fuse_bpf_backing(file->f_inode, struct fuse_flush_in,
+			       fuse_flush_initialize, fuse_flush_backing,
+			       fuse_flush_finalize,
+			       file, id);
+	if (fer.ret)
+		return PTR_ERR(fer.result);
+#endif
+
 	if (fuse_is_bad(inode))
 		return -EIO;
 
@@ -554,6 +591,17 @@
 	struct fuse_conn *fc = get_fuse_conn(inode);
 	int err;
 
+#ifdef CONFIG_FUSE_BPF
+	struct fuse_err_ret fer;
+
+	fer = fuse_bpf_backing(inode, struct fuse_fsync_in,
+			       fuse_fsync_initialize, fuse_fsync_backing,
+			       fuse_fsync_finalize,
+			       file, start, end, datasync);
+	if (fer.ret)
+		return PTR_ERR(fer.result);
+#endif
+
 	if (fuse_is_bad(inode))
 		return -EIO;
 
@@ -1586,6 +1634,20 @@
 	if (FUSE_IS_DAX(inode))
 		return fuse_dax_read_iter(iocb, to);
 
+#ifdef CONFIG_FUSE_BPF
+	{
+		struct fuse_err_ret fer;
+
+		fer = fuse_bpf_backing(inode, struct fuse_file_read_iter_io,
+				       fuse_file_read_iter_initialize,
+				       fuse_file_read_iter_backing,
+				       fuse_file_read_iter_finalize,
+				       iocb, to);
+		if (fer.ret)
+			return PTR_ERR(fer.result);
+	}
+#endif
+
 	if (ff->passthrough.filp)
 		return fuse_passthrough_read_iter(iocb, to);
 	else if (!(ff->open_flags & FOPEN_DIRECT_IO))
@@ -1606,6 +1668,20 @@
 	if (FUSE_IS_DAX(inode))
 		return fuse_dax_write_iter(iocb, from);
 
+#ifdef CONFIG_FUSE_BPF
+	{
+		struct fuse_err_ret fer;
+
+		fer = fuse_bpf_backing(inode, struct fuse_file_write_iter_io,
+				       fuse_file_write_iter_initialize,
+				       fuse_file_write_iter_backing,
+				       fuse_file_write_iter_finalize,
+				       iocb, from);
+		if (fer.ret)
+			return PTR_ERR(fer.result);
+	}
+#endif
+
 	if (ff->passthrough.filp)
 		return fuse_passthrough_write_iter(iocb, from);
 	else if (!(ff->open_flags & FOPEN_DIRECT_IO))
@@ -1855,6 +1931,19 @@
 	struct fuse_file *ff;
 	int err;
 
+	/**
+	 * TODO - fully understand why this is necessary
+	 *
+	 * With fuse-bpf, fsstress fails if rename is enabled without this
+	 *
+	 * We are getting writes here on directory inodes, which do not have an
+	 * initialized file list so crash.
+	 *
+	 * The question is why we are getting those writes
+	 */
+	if (!S_ISREG(inode->i_mode))
+		return 0;
+
 	/*
 	 * Inode is always written before the last reference is dropped and
 	 * hence this should not be reached from reclaim.
@@ -2413,6 +2502,12 @@
 	if (FUSE_IS_DAX(file_inode(file)))
 		return fuse_dax_mmap(file, vma);
 
+#ifdef CONFIG_FUSE_BPF
+	/* TODO - this is simply passthrough, not a proper BPF filter */
+	if (ff->backing_file)
+		return fuse_backing_mmap(file, vma);
+#endif
+
 	if (ff->passthrough.filp)
 		return fuse_passthrough_mmap(file, vma);
 
@@ -2661,6 +2756,17 @@
 {
 	loff_t retval;
 	struct inode *inode = file_inode(file);
+#ifdef CONFIG_FUSE_BPF
+	struct fuse_err_ret fer;
+
+	fer = fuse_bpf_backing(inode, struct fuse_lseek_io,
+			       fuse_lseek_initialize,
+			       fuse_lseek_backing,
+			       fuse_lseek_finalize,
+			       file, offset, whence);
+	if (fer.ret)
+		return PTR_ERR(fer.result);
+#endif
 
 	switch (whence) {
 	case SEEK_SET:
@@ -2951,6 +3057,18 @@
 		(!(mode & FALLOC_FL_KEEP_SIZE) ||
 		 (mode & (FALLOC_FL_PUNCH_HOLE | FALLOC_FL_ZERO_RANGE)));
 
+#ifdef CONFIG_FUSE_BPF
+	struct fuse_err_ret fer;
+
+	fer = fuse_bpf_backing(inode, struct fuse_fallocate_in,
+			       fuse_file_fallocate_initialize,
+			       fuse_file_fallocate_backing,
+			       fuse_file_fallocate_finalize,
+			       file, mode, offset, length);
+	if (fer.ret)
+		return PTR_ERR(fer.result);
+#endif
+
 	if (mode & ~(FALLOC_FL_KEEP_SIZE | FALLOC_FL_PUNCH_HOLE |
 		     FALLOC_FL_ZERO_RANGE))
 		return -EOPNOTSUPP;
@@ -3056,6 +3174,18 @@
 	bool is_unstable = (!fc->writeback_cache) &&
 			   ((pos_out + len) > inode_out->i_size);
 
+#ifdef CONFIG_FUSE_BPF
+	struct fuse_err_ret fer;
+
+	fer = fuse_bpf_backing(file_in->f_inode, struct fuse_copy_file_range_io,
+			       fuse_copy_file_range_initialize,
+			       fuse_copy_file_range_backing,
+			       fuse_copy_file_range_finalize,
+			       file_in, pos_in, file_out, pos_out, len, flags);
+	if (fer.ret)
+		return PTR_ERR(fer.result);
+#endif
+
 	if (fc->no_copy_file_range)
 		return -EOPNOTSUPP;
 
diff --git a/fs/fuse/fuse_i.h b/fs/fuse/fuse_i.h
index 5071a98..ead1b46 100644
--- a/fs/fuse/fuse_i.h
+++ b/fs/fuse/fuse_i.h
@@ -13,6 +13,9 @@
 # define pr_fmt(fmt) "fuse: " fmt
 #endif
 
+#include <linux/android_fuse.h>
+#include <linux/filter.h>
+#include <linux/pagemap.h>
 #include <linux/fuse.h>
 #include <linux/fs.h>
 #include <linux/mount.h>
@@ -31,6 +34,9 @@
 #include <linux/pid_namespace.h>
 #include <linux/refcount.h>
 #include <linux/user_namespace.h>
+#include <linux/statfs.h>
+
+#define FUSE_SUPER_MAGIC 0x65735546
 
 /** Default max number of pages that can be used in a single read request */
 #define FUSE_DEFAULT_MAX_PAGES_PER_REQ 32
@@ -63,11 +69,57 @@
 	struct fuse_forget_link *next;
 };
 
+/** FUSE specific dentry data */
+#if BITS_PER_LONG < 64 || defined(CONFIG_FUSE_BPF)
+struct fuse_dentry {
+	union {
+		u64 time;
+		struct rcu_head rcu;
+	};
+	struct path backing_path;
+};
+
+static inline struct fuse_dentry *get_fuse_dentry(const struct dentry *entry)
+{
+	return entry->d_fsdata;
+}
+#endif
+
+#ifdef CONFIG_FUSE_BPF
+static inline void get_fuse_backing_path(const struct dentry *d,
+					  struct path *path)
+{
+	struct fuse_dentry *di = get_fuse_dentry(d);
+
+	if (!di) {
+		*path = (struct path) {};
+		return;
+	}
+
+	*path = di->backing_path;
+	path_get(path);
+}
+#endif
+
 /** FUSE inode */
 struct fuse_inode {
 	/** Inode data */
 	struct inode inode;
 
+#ifdef CONFIG_FUSE_BPF
+	/**
+	 * Backing inode, if this inode is from a backing file system.
+	 * If this is set, nodeid is 0.
+	 */
+	struct inode *backing_inode;
+
+	/**
+	 * bpf_prog, run on all operations to determine whether to pass through
+	 * or handle in place
+	 */
+	struct bpf_prog *bpf;
+#endif
+
 	/** Unique ID, which identifies the inode between userspace
 	 * and kernel */
 	u64 nodeid;
@@ -232,6 +284,14 @@
 	/** Container for data related to the passthrough functionality */
 	struct fuse_passthrough passthrough;
 
+#ifdef CONFIG_FUSE_BPF
+	/**
+	 * TODO: Reconcile with passthrough file
+	 * backing file when in bpf mode
+	 */
+	struct file *backing_file;
+#endif
+
 	/** RB node to be linked on fuse_conn->polled_files */
 	struct rb_node polled_node;
 
@@ -263,6 +323,7 @@
 struct fuse_args {
 	uint64_t nodeid;
 	uint32_t opcode;
+	uint32_t error_in;
 	unsigned short in_numargs;
 	unsigned short out_numargs;
 	bool force:1;
@@ -275,8 +336,8 @@
 	bool page_zeroing:1;
 	bool page_replace:1;
 	bool may_block:1;
-	struct fuse_in_arg in_args[3];
-	struct fuse_arg out_args[2];
+	struct fuse_in_arg in_args[FUSE_MAX_IN_ARGS];
+	struct fuse_arg out_args[FUSE_MAX_OUT_ARGS];
 	void (*end)(struct fuse_mount *fm, struct fuse_args *args, int error);
 
 	/* Path used for completing d_canonical_path */
@@ -514,9 +575,12 @@
 	bool no_force_umount:1;
 	bool legacy_opts_show:1;
 	bool dax:1;
+	bool no_daemon:1;
 	unsigned int max_read;
 	unsigned int blksize;
 	const char *subtype;
+	struct bpf_prog *root_bpf;
+	struct file *root_dir;
 
 	/* DAX device, may be NULL */
 	struct dax_device *dax_dev;
@@ -787,6 +851,9 @@
 	/* Initialize security xattrs when creating a new inode */
 	unsigned int init_security:1;
 
+	/** BPF Only, no Daemon running */
+	unsigned int no_daemon:1;
+
 	/** The number of requests waiting for completion */
 	atomic_t num_waiting;
 
@@ -958,14 +1025,18 @@
 extern const struct dentry_operations fuse_root_dentry_operations;
 
 /**
- * Get a filled in inode
+ * Get a filled-in inode
  */
+struct inode *fuse_iget_backing(struct super_block *sb,
+				u64 nodeid,
+				struct inode *backing_inode);
 struct inode *fuse_iget(struct super_block *sb, u64 nodeid,
 			int generation, struct fuse_attr *attr,
 			u64 attr_valid, u64 attr_version);
 
 int fuse_lookup_name(struct super_block *sb, u64 nodeid, const struct qstr *name,
-		     struct fuse_entry_out *outarg, struct inode **inode);
+		     struct fuse_entry_out *outarg,
+		     struct dentry *entry, struct inode **inode);
 
 /**
  * Send FORGET command
@@ -1002,7 +1073,6 @@
 void fuse_read_args_fill(struct fuse_io_args *ia, struct file *file, loff_t pos,
 			 size_t count, int opcode);
 
-
 /**
  * Send OPEN or OPENDIR request
  */
@@ -1072,7 +1142,7 @@
 void fuse_dev_cleanup(void);
 
 int fuse_ctl_init(void);
-void __exit fuse_ctl_cleanup(void);
+void fuse_ctl_cleanup(void);
 
 /**
  * Simple request sending that does request allocation and freeing
@@ -1100,6 +1170,7 @@
 void fuse_invalidate_atime(struct inode *inode);
 
 u64 entry_attr_timeout(struct fuse_entry_out *o);
+void fuse_init_dentry_root(struct dentry *root, struct file *backing_dir);
 void fuse_change_entry_timeout(struct dentry *entry, struct fuse_entry_out *o);
 
 /**
@@ -1311,6 +1382,7 @@
 		       unsigned int open_flags, fl_owner_t id, bool isdir);
 
 /* passthrough.c */
+void fuse_copyattr(struct file *dst_file, struct file *src_file);
 int fuse_passthrough_open(struct fuse_dev *fud, u32 lower_fd);
 int fuse_passthrough_setup(struct fuse_conn *fc, struct fuse_file *ff,
 			   struct fuse_open_out *openarg);
@@ -1319,4 +1391,637 @@
 ssize_t fuse_passthrough_write_iter(struct kiocb *iocb, struct iov_iter *from);
 ssize_t fuse_passthrough_mmap(struct file *file, struct vm_area_struct *vma);
 
+/* backing.c */
+
+/*
+ * Dummy io passed to fuse_bpf_backing when io operation needs no scratch space
+ */
+struct fuse_dummy_io {
+	int unused;
+};
+
+struct fuse_open_io {
+	struct fuse_open_in foi;
+	struct fuse_open_out foo;
+};
+
+int fuse_open_initialize(struct fuse_bpf_args *fa, struct fuse_open_io *foi,
+			 struct inode *inode, struct file *file, bool isdir);
+int fuse_open_backing(struct fuse_bpf_args *fa,
+		      struct inode *inode, struct file *file, bool isdir);
+void *fuse_open_finalize(struct fuse_bpf_args *fa,
+		       struct inode *inode, struct file *file, bool isdir);
+
+struct fuse_create_open_io {
+	struct fuse_create_in fci;
+	struct fuse_entry_out feo;
+	struct fuse_open_out foo;
+};
+
+int fuse_create_open_initialize(
+		struct fuse_bpf_args *fa, struct fuse_create_open_io *fcoi,
+		struct inode *dir, struct dentry *entry,
+		struct file *file, unsigned int flags, umode_t mode);
+int fuse_create_open_backing(
+		struct fuse_bpf_args *fa,
+		struct inode *dir, struct dentry *entry,
+		struct file *file, unsigned int flags, umode_t mode);
+void *fuse_create_open_finalize(
+		struct fuse_bpf_args *fa,
+		struct inode *dir, struct dentry *entry,
+		struct file *file, unsigned int flags, umode_t mode);
+
+int fuse_mknod_initialize(
+		struct fuse_bpf_args *fa, struct fuse_mknod_in *fmi,
+		struct inode *dir, struct dentry *entry, umode_t mode, dev_t rdev);
+int fuse_mknod_backing(
+		struct fuse_bpf_args *fa,
+		struct inode *dir, struct dentry *entry, umode_t mode, dev_t rdev);
+void *fuse_mknod_finalize(
+		struct fuse_bpf_args *fa,
+		struct inode *dir, struct dentry *entry, umode_t mode, dev_t rdev);
+
+int fuse_mkdir_initialize(
+		struct fuse_bpf_args *fa, struct fuse_mkdir_in *fmi,
+		struct inode *dir, struct dentry *entry, umode_t mode);
+int fuse_mkdir_backing(
+		struct fuse_bpf_args *fa,
+		struct inode *dir, struct dentry *entry, umode_t mode);
+void *fuse_mkdir_finalize(
+		struct fuse_bpf_args *fa,
+		struct inode *dir, struct dentry *entry, umode_t mode);
+
+int fuse_rmdir_initialize(
+		struct fuse_bpf_args *fa, struct fuse_dummy_io *fmi,
+		struct inode *dir, struct dentry *entry);
+int fuse_rmdir_backing(
+		struct fuse_bpf_args *fa,
+		struct inode *dir, struct dentry *entry);
+void *fuse_rmdir_finalize(
+		struct fuse_bpf_args *fa,
+		struct inode *dir, struct dentry *entry);
+
+int fuse_rename2_initialize(struct fuse_bpf_args *fa, struct fuse_rename2_in *fri,
+			    struct inode *olddir, struct dentry *oldent,
+			    struct inode *newdir, struct dentry *newent,
+			    unsigned int flags);
+int fuse_rename2_backing(struct fuse_bpf_args *fa,
+			 struct inode *olddir, struct dentry *oldent,
+			 struct inode *newdir, struct dentry *newent,
+			 unsigned int flags);
+void *fuse_rename2_finalize(struct fuse_bpf_args *fa,
+			    struct inode *olddir, struct dentry *oldent,
+			    struct inode *newdir, struct dentry *newent,
+			    unsigned int flags);
+
+int fuse_rename_initialize(struct fuse_bpf_args *fa, struct fuse_rename_in *fri,
+			   struct inode *olddir, struct dentry *oldent,
+			   struct inode *newdir, struct dentry *newent);
+int fuse_rename_backing(struct fuse_bpf_args *fa,
+			struct inode *olddir, struct dentry *oldent,
+			struct inode *newdir, struct dentry *newent);
+void *fuse_rename_finalize(struct fuse_bpf_args *fa,
+			   struct inode *olddir, struct dentry *oldent,
+			   struct inode *newdir, struct dentry *newent);
+
+int fuse_unlink_initialize(
+		struct fuse_bpf_args *fa, struct fuse_dummy_io *fmi,
+		struct inode *dir, struct dentry *entry);
+int fuse_unlink_backing(
+		struct fuse_bpf_args *fa,
+		struct inode *dir, struct dentry *entry);
+void *fuse_unlink_finalize(
+		struct fuse_bpf_args *fa,
+		struct inode *dir, struct dentry *entry);
+
+int fuse_link_initialize(struct fuse_bpf_args *fa, struct fuse_link_in *fli,
+			  struct dentry *entry, struct inode *dir,
+			  struct dentry *newent);
+int fuse_link_backing(struct fuse_bpf_args *fa, struct dentry *entry,
+		      struct inode *dir, struct dentry *newent);
+void *fuse_link_finalize(struct fuse_bpf_args *fa, struct dentry *entry,
+			 struct inode *dir, struct dentry *newent);
+
+int fuse_release_initialize(struct fuse_bpf_args *fa, struct fuse_release_in *fri,
+			    struct inode *inode, struct file *file);
+int fuse_releasedir_initialize(struct fuse_bpf_args *fa,
+			struct fuse_release_in *fri,
+			struct inode *inode, struct file *file);
+int fuse_release_backing(struct fuse_bpf_args *fa,
+			 struct inode *inode, struct file *file);
+void *fuse_release_finalize(struct fuse_bpf_args *fa,
+			    struct inode *inode, struct file *file);
+
+int fuse_flush_initialize(struct fuse_bpf_args *fa, struct fuse_flush_in *ffi,
+			  struct file *file, fl_owner_t id);
+int fuse_flush_backing(struct fuse_bpf_args *fa, struct file *file, fl_owner_t id);
+void *fuse_flush_finalize(struct fuse_bpf_args *fa,
+			  struct file *file, fl_owner_t id);
+
+struct fuse_lseek_io {
+	struct fuse_lseek_in fli;
+	struct fuse_lseek_out flo;
+};
+
+int fuse_lseek_initialize(struct fuse_bpf_args *fa, struct fuse_lseek_io *fli,
+			  struct file *file, loff_t offset, int whence);
+int fuse_lseek_backing(struct fuse_bpf_args *fa, struct file *file, loff_t offset, int whence);
+void *fuse_lseek_finalize(struct fuse_bpf_args *fa, struct file *file, loff_t offset, int whence);
+
+struct fuse_copy_file_range_io {
+	struct fuse_copy_file_range_in fci;
+	struct fuse_write_out fwo;
+};
+
+int fuse_copy_file_range_initialize(struct fuse_bpf_args *fa,
+				   struct fuse_copy_file_range_io *fcf,
+				   struct file *file_in, loff_t pos_in,
+				   struct file *file_out, loff_t pos_out,
+				   size_t len, unsigned int flags);
+int fuse_copy_file_range_backing(struct fuse_bpf_args *fa,
+				 struct file *file_in, loff_t pos_in,
+				 struct file *file_out, loff_t pos_out,
+				 size_t len, unsigned int flags);
+void *fuse_copy_file_range_finalize(struct fuse_bpf_args *fa,
+				    struct file *file_in, loff_t pos_in,
+				    struct file *file_out, loff_t pos_out,
+				    size_t len, unsigned int flags);
+
+int fuse_fsync_initialize(struct fuse_bpf_args *fa, struct fuse_fsync_in *ffi,
+		   struct file *file, loff_t start, loff_t end, int datasync);
+int fuse_fsync_backing(struct fuse_bpf_args *fa,
+		   struct file *file, loff_t start, loff_t end, int datasync);
+void *fuse_fsync_finalize(struct fuse_bpf_args *fa,
+		   struct file *file, loff_t start, loff_t end, int datasync);
+int fuse_dir_fsync_initialize(struct fuse_bpf_args *fa, struct fuse_fsync_in *ffi,
+		   struct file *file, loff_t start, loff_t end, int datasync);
+
+struct fuse_getxattr_io {
+	struct fuse_getxattr_in fgi;
+	struct fuse_getxattr_out fgo;
+};
+
+int fuse_getxattr_initialize(
+		struct fuse_bpf_args *fa, struct fuse_getxattr_io *fgio,
+		struct dentry *dentry, const char *name, void *value,
+		size_t size);
+int fuse_getxattr_backing(
+		struct fuse_bpf_args *fa,
+		struct dentry *dentry, const char *name, void *value,
+		size_t size);
+void *fuse_getxattr_finalize(
+		struct fuse_bpf_args *fa,
+		struct dentry *dentry, const char *name, void *value,
+		size_t size);
+
+int fuse_listxattr_initialize(struct fuse_bpf_args *fa,
+			       struct fuse_getxattr_io *fgio,
+			       struct dentry *dentry, char *list, size_t size);
+int fuse_listxattr_backing(struct fuse_bpf_args *fa, struct dentry *dentry,
+			   char *list, size_t size);
+void *fuse_listxattr_finalize(struct fuse_bpf_args *fa, struct dentry *dentry,
+			      char *list, size_t size);
+
+int fuse_setxattr_initialize(struct fuse_bpf_args *fa,
+			     struct fuse_setxattr_in *fsxi,
+			     struct dentry *dentry, const char *name,
+			     const void *value, size_t size, int flags);
+int fuse_setxattr_backing(struct fuse_bpf_args *fa, struct dentry *dentry,
+			  const char *name, const void *value, size_t size,
+			  int flags);
+void *fuse_setxattr_finalize(struct fuse_bpf_args *fa, struct dentry *dentry,
+			     const char *name, const void *value, size_t size,
+			     int flags);
+
+int fuse_removexattr_initialize(struct fuse_bpf_args *fa,
+				struct fuse_dummy_io *unused,
+				struct dentry *dentry, const char *name);
+int fuse_removexattr_backing(struct fuse_bpf_args *fa,
+			     struct dentry *dentry, const char *name);
+void *fuse_removexattr_finalize(struct fuse_bpf_args *fa,
+				struct dentry *dentry, const char *name);
+
+struct fuse_read_iter_out {
+	uint64_t ret;
+};
+struct fuse_file_read_iter_io {
+	struct fuse_read_in fri;
+	struct fuse_read_iter_out frio;
+};
+
+int fuse_file_read_iter_initialize(
+		struct fuse_bpf_args *fa, struct fuse_file_read_iter_io *fri,
+		struct kiocb *iocb, struct iov_iter *to);
+int fuse_file_read_iter_backing(struct fuse_bpf_args *fa,
+		struct kiocb *iocb, struct iov_iter *to);
+void *fuse_file_read_iter_finalize(struct fuse_bpf_args *fa,
+		struct kiocb *iocb, struct iov_iter *to);
+
+struct fuse_write_iter_out {
+	uint64_t ret;
+};
+struct fuse_file_write_iter_io {
+	struct fuse_write_in fwi;
+	struct fuse_write_out fwo;
+	struct fuse_write_iter_out fwio;
+};
+
+int fuse_file_write_iter_initialize(
+		struct fuse_bpf_args *fa, struct fuse_file_write_iter_io *fwio,
+		struct kiocb *iocb, struct iov_iter *from);
+int fuse_file_write_iter_backing(struct fuse_bpf_args *fa,
+		struct kiocb *iocb, struct iov_iter *from);
+void *fuse_file_write_iter_finalize(struct fuse_bpf_args *fa,
+		struct kiocb *iocb, struct iov_iter *from);
+
+ssize_t fuse_backing_mmap(struct file *file, struct vm_area_struct *vma);
+
+int fuse_file_fallocate_initialize(struct fuse_bpf_args *fa,
+		struct fuse_fallocate_in *ffi,
+		struct file *file, int mode, loff_t offset, loff_t length);
+int fuse_file_fallocate_backing(struct fuse_bpf_args *fa,
+		struct file *file, int mode, loff_t offset, loff_t length);
+void *fuse_file_fallocate_finalize(struct fuse_bpf_args *fa,
+		struct file *file, int mode, loff_t offset, loff_t length);
+
+struct fuse_lookup_io {
+	struct fuse_entry_out feo;
+	struct fuse_entry_bpf feb;
+};
+
+int fuse_handle_backing(struct fuse_entry_bpf *feb, struct inode **backing_inode,
+			struct path *backing_path);
+int fuse_handle_bpf_prog(struct fuse_entry_bpf *feb, struct inode *parent,
+			 struct bpf_prog **bpf);
+
+int fuse_lookup_initialize(struct fuse_bpf_args *fa, struct fuse_lookup_io *feo,
+	       struct inode *dir, struct dentry *entry, unsigned int flags);
+int fuse_lookup_backing(struct fuse_bpf_args *fa, struct inode *dir,
+			  struct dentry *entry, unsigned int flags);
+struct dentry *fuse_lookup_finalize(struct fuse_bpf_args *fa, struct inode *dir,
+			   struct dentry *entry, unsigned int flags);
+int fuse_revalidate_backing(struct dentry *entry, unsigned int flags);
+
+int fuse_canonical_path_initialize(struct fuse_bpf_args *fa,
+				   struct fuse_dummy_io *fdi,
+				   const struct path *path,
+				   struct path *canonical_path);
+int fuse_canonical_path_backing(struct fuse_bpf_args *fa, const struct path *path,
+				struct path *canonical_path);
+void *fuse_canonical_path_finalize(struct fuse_bpf_args *fa,
+				   const struct path *path,
+				   struct path *canonical_path);
+
+struct fuse_getattr_io {
+	struct fuse_getattr_in fgi;
+	struct fuse_attr_out fao;
+};
+int fuse_getattr_initialize(struct fuse_bpf_args *fa, struct fuse_getattr_io *fgio,
+			const struct dentry *entry, struct kstat *stat,
+			u32 request_mask, unsigned int flags);
+int fuse_getattr_backing(struct fuse_bpf_args *fa,
+			const struct dentry *entry, struct kstat *stat,
+			u32 request_mask, unsigned int flags);
+void *fuse_getattr_finalize(struct fuse_bpf_args *fa,
+			const struct dentry *entry, struct kstat *stat,
+			u32 request_mask, unsigned int flags);
+
+struct fuse_setattr_io {
+	struct fuse_setattr_in fsi;
+	struct fuse_attr_out fao;
+};
+
+int fuse_setattr_initialize(struct fuse_bpf_args *fa, struct fuse_setattr_io *fsi,
+		struct dentry *dentry, struct iattr *attr, struct file *file);
+int fuse_setattr_backing(struct fuse_bpf_args *fa,
+		struct dentry *dentry, struct iattr *attr, struct file *file);
+void *fuse_setattr_finalize(struct fuse_bpf_args *fa,
+		struct dentry *dentry, struct iattr *attr, struct file *file);
+
+int fuse_statfs_initialize(struct fuse_bpf_args *fa, struct fuse_statfs_out *fso,
+		struct dentry *dentry, struct kstatfs *buf);
+int fuse_statfs_backing(struct fuse_bpf_args *fa,
+		struct dentry *dentry, struct kstatfs *buf);
+void *fuse_statfs_finalize(struct fuse_bpf_args *fa,
+		struct dentry *dentry, struct kstatfs *buf);
+
+int fuse_get_link_initialize(struct fuse_bpf_args *fa, struct fuse_dummy_io *dummy,
+		struct inode *inode, struct dentry *dentry,
+		struct delayed_call *callback, const char **out);
+int fuse_get_link_backing(struct fuse_bpf_args *fa,
+		struct inode *inode, struct dentry *dentry,
+		struct delayed_call *callback, const char **out);
+void *fuse_get_link_finalize(struct fuse_bpf_args *fa,
+		struct inode *inode, struct dentry *dentry,
+		struct delayed_call *callback, const char **out);
+
+int fuse_symlink_initialize(
+		struct fuse_bpf_args *fa, struct fuse_dummy_io *unused,
+		struct inode *dir, struct dentry *entry, const char *link, int len);
+int fuse_symlink_backing(
+		struct fuse_bpf_args *fa,
+		struct inode *dir, struct dentry *entry, const char *link, int len);
+void *fuse_symlink_finalize(
+		struct fuse_bpf_args *fa,
+		struct inode *dir, struct dentry *entry, const char *link, int len);
+
+struct fuse_read_io {
+	struct fuse_read_in fri;
+	struct fuse_read_out fro;
+};
+
+int fuse_readdir_initialize(struct fuse_bpf_args *fa, struct fuse_read_io *frio,
+			    struct file *file, struct dir_context *ctx,
+			    bool *force_again, bool *allow_force, bool is_continued);
+int fuse_readdir_backing(struct fuse_bpf_args *fa,
+			 struct file *file, struct dir_context *ctx,
+			 bool *force_again, bool *allow_force, bool is_continued);
+void *fuse_readdir_finalize(struct fuse_bpf_args *fa,
+			    struct file *file, struct dir_context *ctx,
+			    bool *force_again, bool *allow_force, bool is_continued);
+
+int fuse_access_initialize(struct fuse_bpf_args *fa, struct fuse_access_in *fai,
+			   struct inode *inode, int mask);
+int fuse_access_backing(struct fuse_bpf_args *fa, struct inode *inode, int mask);
+void *fuse_access_finalize(struct fuse_bpf_args *fa, struct inode *inode, int mask);
+
+/*
+ * FUSE caches dentries and attributes with separate timeout.  The
+ * time in jiffies until the dentry/attributes are valid is stored in
+ * dentry->d_fsdata and fuse_inode->i_time respectively.
+ */
+
+/*
+ * Calculate the time in jiffies until a dentry/attributes are valid
+ */
+static inline u64 time_to_jiffies(u64 sec, u32 nsec)
+{
+	if (sec || nsec) {
+		struct timespec64 ts = {
+			sec,
+			min_t(u32, nsec, NSEC_PER_SEC - 1)
+		};
+
+		return get_jiffies_64() + timespec64_to_jiffies(&ts);
+	} else
+		return 0;
+}
+
+static inline u64 attr_timeout(struct fuse_attr_out *o)
+{
+	return time_to_jiffies(o->attr_valid, o->attr_valid_nsec);
+}
+
+static inline bool update_mtime(unsigned int ivalid, bool trust_local_mtime)
+{
+	/* Always update if mtime is explicitly set  */
+	if (ivalid & ATTR_MTIME_SET)
+		return true;
+
+	/* Or if kernel i_mtime is the official one */
+	if (trust_local_mtime)
+		return true;
+
+	/* If it's an open(O_TRUNC) or an ftruncate(), don't update */
+	if ((ivalid & ATTR_SIZE) && (ivalid & (ATTR_OPEN | ATTR_FILE)))
+		return false;
+
+	/* In all other cases update */
+	return true;
+}
+
+void fuse_fillattr(struct inode *inode, struct fuse_attr *attr,
+			  struct kstat *stat);
+
+static inline void iattr_to_fattr(struct fuse_conn *fc, struct iattr *iattr,
+			   struct fuse_setattr_in *arg, bool trust_local_cmtime)
+{
+	unsigned int ivalid = iattr->ia_valid;
+
+	if (ivalid & ATTR_MODE)
+		arg->valid |= FATTR_MODE,   arg->mode = iattr->ia_mode;
+	if (ivalid & ATTR_UID)
+		arg->valid |= FATTR_UID,    arg->uid = from_kuid(fc->user_ns, iattr->ia_uid);
+	if (ivalid & ATTR_GID)
+		arg->valid |= FATTR_GID,    arg->gid = from_kgid(fc->user_ns, iattr->ia_gid);
+	if (ivalid & ATTR_SIZE)
+		arg->valid |= FATTR_SIZE,   arg->size = iattr->ia_size;
+	if (ivalid & ATTR_ATIME) {
+		arg->valid |= FATTR_ATIME;
+		arg->atime = iattr->ia_atime.tv_sec;
+		arg->atimensec = iattr->ia_atime.tv_nsec;
+		if (!(ivalid & ATTR_ATIME_SET))
+			arg->valid |= FATTR_ATIME_NOW;
+	}
+	if ((ivalid & ATTR_MTIME) && update_mtime(ivalid, trust_local_cmtime)) {
+		arg->valid |= FATTR_MTIME;
+		arg->mtime = iattr->ia_mtime.tv_sec;
+		arg->mtimensec = iattr->ia_mtime.tv_nsec;
+		if (!(ivalid & ATTR_MTIME_SET) && !trust_local_cmtime)
+			arg->valid |= FATTR_MTIME_NOW;
+	}
+	if ((ivalid & ATTR_CTIME) && trust_local_cmtime) {
+		arg->valid |= FATTR_CTIME;
+		arg->ctime = iattr->ia_ctime.tv_sec;
+		arg->ctimensec = iattr->ia_ctime.tv_nsec;
+	}
+}
+
+static inline int finalize_attr(struct inode *inode, struct fuse_attr_out *outarg,
+				u64 attr_version, struct kstat *stat)
+{
+	int err = 0;
+
+	if (fuse_invalid_attr(&outarg->attr) ||
+	    ((inode->i_mode ^ outarg->attr.mode) & S_IFMT)) {
+		fuse_make_bad(inode);
+		err = -EIO;
+	} else {
+		fuse_change_attributes(inode, &outarg->attr,
+				       attr_timeout(outarg),
+				       attr_version);
+		if (stat)
+			fuse_fillattr(inode, &outarg->attr, stat);
+	}
+	return err;
+}
+
+static inline void convert_statfs_to_fuse(struct fuse_kstatfs *attr, struct kstatfs *stbuf)
+{
+	attr->bsize   = stbuf->f_bsize;
+	attr->frsize  = stbuf->f_frsize;
+	attr->blocks  = stbuf->f_blocks;
+	attr->bfree   = stbuf->f_bfree;
+	attr->bavail  = stbuf->f_bavail;
+	attr->files   = stbuf->f_files;
+	attr->ffree   = stbuf->f_ffree;
+	attr->namelen = stbuf->f_namelen;
+	/* fsid is left zero */
+}
+
+static inline void convert_fuse_statfs(struct kstatfs *stbuf, struct fuse_kstatfs *attr)
+{
+	stbuf->f_type    = FUSE_SUPER_MAGIC;
+	stbuf->f_bsize   = attr->bsize;
+	stbuf->f_frsize  = attr->frsize;
+	stbuf->f_blocks  = attr->blocks;
+	stbuf->f_bfree   = attr->bfree;
+	stbuf->f_bavail  = attr->bavail;
+	stbuf->f_files   = attr->files;
+	stbuf->f_ffree   = attr->ffree;
+	stbuf->f_namelen = attr->namelen;
+	/* fsid is left zero */
+}
+
+#ifdef CONFIG_FUSE_BPF
+struct fuse_err_ret {
+	void *result;
+	bool ret;
+};
+
+int __init fuse_bpf_init(void);
+void __exit fuse_bpf_cleanup(void);
+
+ssize_t fuse_bpf_simple_request(struct fuse_mount *fm, struct fuse_bpf_args *args);
+
+/*
+ * expression statement to wrap the backing filter logic
+ * struct inode *inode: inode with bpf and backing inode
+ * typedef io: (typically complex) type whose components fuse_args can point to.
+ *	An instance of this type is created locally and passed to initialize
+ * void initialize(struct fuse_bpf_args *fa, io *in_out, args...): function that sets
+ *	up fa and io based on args
+ * int backing(struct fuse_bpf_args *fa, args...): function that actually performs
+ *	the backing io operation
+ * void *finalize(struct fuse_bpf_args *, args...): function that performs any final
+ *	work needed to commit the backing io
+ */
+#define fuse_bpf_backing(inode, io, initialize, backing, finalize,	\
+			 args...)					\
+({									\
+	struct fuse_err_ret fer = {0};					\
+	int ext_flags;							\
+	struct fuse_inode *fuse_inode = get_fuse_inode(inode);		\
+	struct fuse_mount *fm = get_fuse_mount(inode);			\
+	io feo = {0};							\
+	struct fuse_bpf_args fa = {0}, fa_backup = {0};			\
+	bool locked;							\
+	ssize_t res;							\
+	void *err;							\
+	int i;								\
+	bool initialized = false;					\
+									\
+	do {								\
+		if (!fuse_inode || !fuse_inode->backing_inode)		\
+			break;						\
+									\
+		err = ERR_PTR(initialize(&fa, &feo, args));		\
+		if (err) {						\
+			fer = (struct fuse_err_ret) {			\
+				err,					\
+				true,					\
+			};						\
+			break;						\
+		}							\
+		initialized = true;					\
+									\
+		fa_backup = fa;						\
+		fa.opcode |= FUSE_PREFILTER;				\
+		for (i = 0; i < fa.in_numargs; ++i)			\
+			fa.out_args[i] = (struct fuse_bpf_arg) {	\
+				.size = fa.in_args[i].size,		\
+				.value = (void *)fa.in_args[i].value,	\
+			};						\
+		fa.out_numargs = fa.in_numargs;				\
+									\
+		ext_flags = fuse_inode->bpf ?				\
+			bpf_prog_run(fuse_inode->bpf, &fa) :		\
+			FUSE_BPF_BACKING;				\
+		if (ext_flags < 0) {					\
+			fer = (struct fuse_err_ret) {			\
+				ERR_PTR(ext_flags),			\
+				true,					\
+			};						\
+			break;						\
+		}							\
+									\
+		if (ext_flags & FUSE_BPF_USER_FILTER) {			\
+			locked = fuse_lock_inode(inode);		\
+			res = fuse_bpf_simple_request(fm, &fa);		\
+			fuse_unlock_inode(inode, locked);		\
+			if (res < 0) {					\
+				fer = (struct fuse_err_ret) {		\
+					ERR_PTR(res),			\
+					true,				\
+				};					\
+				break;					\
+			}						\
+		}							\
+									\
+		if (!(ext_flags & FUSE_BPF_BACKING))			\
+			break;						\
+									\
+		fa.opcode &= ~FUSE_PREFILTER;				\
+		for (i = 0; i < fa.in_numargs; ++i)			\
+			fa.in_args[i] = (struct fuse_bpf_in_arg) {	\
+				.size = fa.out_args[i].size,		\
+				.value = fa.out_args[i].value,		\
+			};						\
+		for (i = 0; i < fa_backup.out_numargs; ++i)		\
+			fa.out_args[i] = (struct fuse_bpf_arg) {	\
+				.size = fa_backup.out_args[i].size,	\
+				.value = fa_backup.out_args[i].value,	\
+			};						\
+		fa.out_numargs = fa_backup.out_numargs;			\
+									\
+		fer = (struct fuse_err_ret) {				\
+			ERR_PTR(backing(&fa, args)),			\
+			true,						\
+		};							\
+		if (IS_ERR(fer.result))					\
+			fa.error_in = PTR_ERR(fer.result);		\
+		if (!(ext_flags & FUSE_BPF_POST_FILTER))		\
+			break;						\
+									\
+		fa.opcode |= FUSE_POSTFILTER;				\
+		for (i = 0; i < fa.out_numargs; ++i)			\
+			fa.in_args[fa.in_numargs++] =			\
+				(struct fuse_bpf_in_arg) {		\
+					.size = fa.out_args[i].size,	\
+					.value = fa.out_args[i].value,	\
+				};					\
+		ext_flags = bpf_prog_run(fuse_inode->bpf, &fa);		\
+		if (ext_flags < 0) {					\
+			fer = (struct fuse_err_ret) {			\
+				ERR_PTR(ext_flags),			\
+				true,					\
+			};						\
+			break;						\
+		}							\
+		if (!(ext_flags & FUSE_BPF_USER_FILTER))		\
+			break;						\
+									\
+		fa.out_args[0].size = fa_backup.out_args[0].size;	\
+		fa.out_args[1].size = fa_backup.out_args[1].size;	\
+		fa.out_numargs = fa_backup.out_numargs;			\
+		locked = fuse_lock_inode(inode);			\
+		res = fuse_bpf_simple_request(fm, &fa);			\
+		fuse_unlock_inode(inode, locked);			\
+		if (res < 0) {						\
+			fer.result = ERR_PTR(res);			\
+			break;						\
+		}							\
+	} while (false);						\
+									\
+	if (initialized && fer.ret) {					\
+		err = finalize(&fa, args);				\
+		if (err)						\
+			fer.result = err;				\
+	}								\
+									\
+	fer;								\
+})
+
+#endif /* CONFIG_FUSE_BPF */
+
 #endif /* _FS_FUSE_I_H */
diff --git a/fs/fuse/inode.c b/fs/fuse/inode.c
index 2ec1d5d..75902be 100644
--- a/fs/fuse/inode.c
+++ b/fs/fuse/inode.c
@@ -51,8 +51,6 @@
  "Global limit for the maximum congestion threshold an "
  "unprivileged user can set");
 
-#define FUSE_SUPER_MAGIC 0x65735546
-
 #define FUSE_DEFAULT_BLKSIZE 512
 
 /** Maximum number of outstanding background requests */
@@ -80,6 +78,10 @@
 
 	fi->i_time = 0;
 	fi->inval_mask = 0;
+#ifdef CONFIG_FUSE_BPF
+	fi->backing_inode = NULL;
+	fi->bpf = NULL;
+#endif
 	fi->nodeid = 0;
 	fi->nlookup = 0;
 	fi->attr_version = 0;
@@ -122,6 +124,12 @@
 	/* Will write inode on close/munmap and in all other dirtiers */
 	WARN_ON(inode->i_state & I_DIRTY_INODE);
 
+#ifdef CONFIG_FUSE_BPF
+	iput(fi->backing_inode);
+	if (fi->bpf)
+		bpf_prog_put(fi->bpf);
+	fi->bpf = NULL;
+#endif
 	truncate_inode_pages_final(&inode->i_data);
 	clear_inode(inode);
 	if (inode->i_sb->s_flags & SB_ACTIVE) {
@@ -164,6 +172,28 @@
 	return ino;
 }
 
+static void fuse_fill_attr_from_inode(struct fuse_attr *attr,
+				      const struct inode *inode)
+{
+	*attr = (struct fuse_attr){
+		.ino		= inode->i_ino,
+		.size		= inode->i_size,
+		.blocks		= inode->i_blocks,
+		.atime		= inode->i_atime.tv_sec,
+		.mtime		= inode->i_mtime.tv_sec,
+		.ctime		= inode->i_ctime.tv_sec,
+		.atimensec	= inode->i_atime.tv_nsec,
+		.mtimensec	= inode->i_mtime.tv_nsec,
+		.ctimensec	= inode->i_ctime.tv_nsec,
+		.mode		= inode->i_mode,
+		.nlink		= inode->i_nlink,
+		.uid		= inode->i_uid.val,
+		.gid		= inode->i_gid.val,
+		.rdev		= inode->i_rdev,
+		.blksize	= 1u << inode->i_blkbits,
+	};
+}
+
 void fuse_change_attributes_common(struct inode *inode, struct fuse_attr *attr,
 				   u64 attr_valid)
 {
@@ -298,28 +328,104 @@
 	else if (S_ISCHR(inode->i_mode) || S_ISBLK(inode->i_mode) ||
 		 S_ISFIFO(inode->i_mode) || S_ISSOCK(inode->i_mode)) {
 		fuse_init_common(inode);
-		init_special_inode(inode, inode->i_mode,
-				   new_decode_dev(attr->rdev));
+		init_special_inode(inode, inode->i_mode, attr->rdev);
 	} else
 		BUG();
 }
 
+struct fuse_inode_identifier {
+	u64 nodeid;
+	struct inode *backing_inode;
+};
+
 static int fuse_inode_eq(struct inode *inode, void *_nodeidp)
 {
-	u64 nodeid = *(u64 *) _nodeidp;
-	if (get_node_id(inode) == nodeid)
-		return 1;
-	else
-		return 0;
+	struct fuse_inode_identifier *fii =
+		(struct fuse_inode_identifier *) _nodeidp;
+	struct fuse_inode *fi = get_fuse_inode(inode);
+
+	return fii->nodeid == fi->nodeid;
+}
+
+static int fuse_inode_backing_eq(struct inode *inode, void *_nodeidp)
+{
+	struct fuse_inode_identifier *fii =
+		(struct fuse_inode_identifier *) _nodeidp;
+	struct fuse_inode *fi = get_fuse_inode(inode);
+
+	return fii->nodeid == fi->nodeid
+#ifdef CONFIG_FUSE_BPF
+		&& fii->backing_inode == fi->backing_inode
+#endif
+		;
 }
 
 static int fuse_inode_set(struct inode *inode, void *_nodeidp)
 {
-	u64 nodeid = *(u64 *) _nodeidp;
-	get_fuse_inode(inode)->nodeid = nodeid;
+	struct fuse_inode_identifier *fii =
+		(struct fuse_inode_identifier *) _nodeidp;
+	struct fuse_inode *fi = get_fuse_inode(inode);
+
+	fi->nodeid = fii->nodeid;
+
 	return 0;
 }
 
+static int fuse_inode_backing_set(struct inode *inode, void *_nodeidp)
+{
+	struct fuse_inode_identifier *fii =
+		(struct fuse_inode_identifier *) _nodeidp;
+	struct fuse_inode *fi = get_fuse_inode(inode);
+
+	fi->nodeid = fii->nodeid;
+#ifdef CONFIG_FUSE_BPF
+	fi->backing_inode = fii->backing_inode;
+	if (fi->backing_inode)
+		ihold(fi->backing_inode);
+#endif
+
+	return 0;
+}
+
+struct inode *fuse_iget_backing(struct super_block *sb, u64 nodeid,
+				struct inode *backing_inode)
+{
+	struct inode *inode;
+	struct fuse_inode *fi;
+	struct fuse_conn *fc = get_fuse_conn_super(sb);
+	struct fuse_inode_identifier fii = {
+		.nodeid = nodeid,
+		.backing_inode = backing_inode,
+	};
+	struct fuse_attr attr;
+	unsigned long hash = (unsigned long) backing_inode;
+
+	if (nodeid)
+		hash = nodeid;
+
+	fuse_fill_attr_from_inode(&attr, backing_inode);
+	inode = iget5_locked(sb, hash, fuse_inode_backing_eq,
+			     fuse_inode_backing_set, &fii);
+	if (!inode)
+		return NULL;
+
+	if ((inode->i_state & I_NEW)) {
+		inode->i_flags |= S_NOATIME;
+		if (!fc->writeback_cache)
+			inode->i_flags |= S_NOCMTIME;
+		fuse_init_common(inode);
+		unlock_new_inode(inode);
+	}
+
+	fi = get_fuse_inode(inode);
+	fuse_init_inode(inode, &attr);
+	spin_lock(&fi->lock);
+	fi->nlookup++;
+	spin_unlock(&fi->lock);
+
+	return inode;
+}
+
 struct inode *fuse_iget(struct super_block *sb, u64 nodeid,
 			int generation, struct fuse_attr *attr,
 			u64 attr_valid, u64 attr_version)
@@ -327,6 +433,9 @@
 	struct inode *inode;
 	struct fuse_inode *fi;
 	struct fuse_conn *fc = get_fuse_conn_super(sb);
+	struct fuse_inode_identifier fii = {
+		.nodeid = nodeid,
+	};
 
 	/*
 	 * Auto mount points get their node id from the submount root, which is
@@ -348,7 +457,7 @@
 	}
 
 retry:
-	inode = iget5_locked(sb, nodeid, fuse_inode_eq, fuse_inode_set, &nodeid);
+	inode = iget5_locked(sb, nodeid, fuse_inode_eq, fuse_inode_set, &fii);
 	if (!inode)
 		return NULL;
 
@@ -380,13 +489,16 @@
 {
 	struct fuse_mount *fm_iter;
 	struct inode *inode;
+	struct fuse_inode_identifier fii = {
+		.nodeid = nodeid,
+	};
 
 	WARN_ON(!rwsem_is_locked(&fc->killsb));
 	list_for_each_entry(fm_iter, &fc->mounts, fc_entry) {
 		if (!fm_iter->sb)
 			continue;
 
-		inode = ilookup5(fm_iter->sb, nodeid, fuse_inode_eq, &nodeid);
+		inode = ilookup5(fm_iter->sb, nodeid, fuse_inode_eq, &fii);
 		if (inode) {
 			if (fm)
 				*fm = fm_iter;
@@ -467,20 +579,6 @@
 	}
 }
 
-static void convert_fuse_statfs(struct kstatfs *stbuf, struct fuse_kstatfs *attr)
-{
-	stbuf->f_type    = FUSE_SUPER_MAGIC;
-	stbuf->f_bsize   = attr->bsize;
-	stbuf->f_frsize  = attr->frsize;
-	stbuf->f_blocks  = attr->blocks;
-	stbuf->f_bfree   = attr->bfree;
-	stbuf->f_bavail  = attr->bavail;
-	stbuf->f_files   = attr->files;
-	stbuf->f_ffree   = attr->ffree;
-	stbuf->f_namelen = attr->namelen;
-	/* fsid is left zero */
-}
-
 static int fuse_statfs(struct dentry *dentry, struct kstatfs *buf)
 {
 	struct super_block *sb = dentry->d_sb;
@@ -488,12 +586,24 @@
 	FUSE_ARGS(args);
 	struct fuse_statfs_out outarg;
 	int err;
+#ifdef CONFIG_FUSE_BPF
+	struct fuse_err_ret fer;
+#endif
 
 	if (!fuse_allow_current_process(fm->fc)) {
 		buf->f_type = FUSE_SUPER_MAGIC;
 		return 0;
 	}
 
+#ifdef CONFIG_FUSE_BPF
+	fer = fuse_bpf_backing(dentry->d_inode, struct fuse_statfs_out,
+			       fuse_statfs_initialize, fuse_statfs_backing,
+			       fuse_statfs_finalize,
+			       dentry, buf);
+	if (fer.ret)
+		return PTR_ERR(fer.result);
+#endif
+
 	memset(&outarg, 0, sizeof(outarg));
 	args.in_numargs = 0;
 	args.opcode = FUSE_STATFS;
@@ -610,6 +720,9 @@
 	OPT_ALLOW_OTHER,
 	OPT_MAX_READ,
 	OPT_BLKSIZE,
+	OPT_ROOT_BPF,
+	OPT_ROOT_DIR,
+	OPT_NO_DAEMON,
 	OPT_ERR
 };
 
@@ -624,6 +737,9 @@
 	fsparam_u32	("max_read",		OPT_MAX_READ),
 	fsparam_u32	("blksize",		OPT_BLKSIZE),
 	fsparam_string	("subtype",		OPT_SUBTYPE),
+	fsparam_u32	("root_bpf",		OPT_ROOT_BPF),
+	fsparam_u32	("root_dir",		OPT_ROOT_DIR),
+	fsparam_flag	("no_daemon",		OPT_NO_DAEMON),
 	{}
 };
 
@@ -707,6 +823,26 @@
 		ctx->blksize = result.uint_32;
 		break;
 
+	case OPT_ROOT_BPF:
+		ctx->root_bpf = bpf_prog_get_type_dev(result.uint_32,
+						BPF_PROG_TYPE_FUSE, false);
+		if (IS_ERR(ctx->root_bpf)) {
+			ctx->root_bpf = NULL;
+			return invalfc(fsc, "Unable to open bpf program");
+		}
+		break;
+
+	case OPT_ROOT_DIR:
+		ctx->root_dir = fget(result.uint_32);
+		if (!ctx->root_dir)
+			return invalfc(fsc, "Unable to open root directory");
+		break;
+
+	case OPT_NO_DAEMON:
+		ctx->no_daemon = true;
+		ctx->fd_present = true;
+		break;
+
 	default:
 		return -EINVAL;
 	}
@@ -719,6 +855,10 @@
 	struct fuse_fs_context *ctx = fsc->fs_private;
 
 	if (ctx) {
+		if (ctx->root_dir)
+			fput(ctx->root_dir);
+		if (ctx->root_bpf)
+			bpf_prog_put(ctx->root_bpf);
 		kfree(ctx->subtype);
 		kfree(ctx);
 	}
@@ -844,15 +984,34 @@
 }
 EXPORT_SYMBOL_GPL(fuse_conn_get);
 
-static struct inode *fuse_get_root_inode(struct super_block *sb, unsigned mode)
+static struct inode *fuse_get_root_inode(struct super_block *sb,
+					 unsigned int mode,
+					 struct bpf_prog *root_bpf,
+					 struct file *backing_fd)
 {
 	struct fuse_attr attr;
-	memset(&attr, 0, sizeof(attr));
+	struct inode *inode;
 
+	memset(&attr, 0, sizeof(attr));
 	attr.mode = mode;
 	attr.ino = FUSE_ROOT_ID;
 	attr.nlink = 1;
-	return fuse_iget(sb, 1, 0, &attr, 0, 0);
+	inode = fuse_iget(sb, 1, 0, &attr, 0, 0);
+	if (!inode)
+		return NULL;
+
+#ifdef CONFIG_FUSE_BPF
+	get_fuse_inode(inode)->bpf = root_bpf;
+	if (root_bpf)
+		bpf_prog_inc(root_bpf);
+
+	if (backing_fd) {
+		get_fuse_inode(inode)->backing_inode = backing_fd->f_inode;
+		ihold(backing_fd->f_inode);
+	}
+#endif
+
+	return inode;
 }
 
 struct fuse_inode_handle {
@@ -867,11 +1026,14 @@
 	struct inode *inode;
 	struct dentry *entry;
 	int err = -ESTALE;
+	struct fuse_inode_identifier fii = {
+		.nodeid = handle->nodeid,
+	};
 
 	if (handle->nodeid == 0)
 		goto out_err;
 
-	inode = ilookup5(sb, handle->nodeid, fuse_inode_eq, &handle->nodeid);
+	inode = ilookup5(sb, handle->nodeid, fuse_inode_eq, &fii);
 	if (!inode) {
 		struct fuse_entry_out outarg;
 		const struct qstr name = QSTR_INIT(".", 1);
@@ -880,7 +1042,7 @@
 			goto out_err;
 
 		err = fuse_lookup_name(sb, handle->nodeid, &name, &outarg,
-				       &inode);
+				       NULL, &inode);
 		if (err && err != -ENOENT)
 			goto out_err;
 		if (err || !inode) {
@@ -974,13 +1136,14 @@
 	struct inode *inode;
 	struct dentry *parent;
 	struct fuse_entry_out outarg;
+	const struct qstr name = QSTR_INIT("..", 2);
 	int err;
 
 	if (!fc->export_support)
 		return ERR_PTR(-ESTALE);
 
 	err = fuse_lookup_name(child_inode->i_sb, get_node_id(child_inode),
-			       &dotdot_name, &outarg, &inode);
+			       &name, &outarg, NULL, &inode);
 	if (err) {
 		if (err == -ENOENT)
 			return ERR_PTR(-ESTALE);
@@ -1237,7 +1400,7 @@
 	ia->args.nocreds = true;
 	ia->args.end = process_init_reply;
 
-	if (fuse_simple_background(fm, &ia->args, GFP_KERNEL) != 0)
+	if (unlikely(fm->fc->no_daemon) || fuse_simple_background(fm, &ia->args, GFP_KERNEL) != 0)
 		process_init_reply(fm, &ia->args, -ENOTCONN);
 }
 EXPORT_SYMBOL_GPL(fuse_send_init);
@@ -1361,28 +1524,6 @@
 }
 EXPORT_SYMBOL_GPL(fuse_dev_free);
 
-static void fuse_fill_attr_from_inode(struct fuse_attr *attr,
-				      const struct fuse_inode *fi)
-{
-	*attr = (struct fuse_attr){
-		.ino		= fi->inode.i_ino,
-		.size		= fi->inode.i_size,
-		.blocks		= fi->inode.i_blocks,
-		.atime		= fi->inode.i_atime.tv_sec,
-		.mtime		= fi->inode.i_mtime.tv_sec,
-		.ctime		= fi->inode.i_ctime.tv_sec,
-		.atimensec	= fi->inode.i_atime.tv_nsec,
-		.mtimensec	= fi->inode.i_mtime.tv_nsec,
-		.ctimensec	= fi->inode.i_ctime.tv_nsec,
-		.mode		= fi->inode.i_mode,
-		.nlink		= fi->inode.i_nlink,
-		.uid		= fi->inode.i_uid.val,
-		.gid		= fi->inode.i_gid.val,
-		.rdev		= fi->inode.i_rdev,
-		.blksize	= 1u << fi->inode.i_blkbits,
-	};
-}
-
 static void fuse_sb_defaults(struct super_block *sb)
 {
 	sb->s_magic = FUSE_SUPER_MAGIC;
@@ -1426,7 +1567,7 @@
 	if (parent_sb->s_subtype && !sb->s_subtype)
 		return -ENOMEM;
 
-	fuse_fill_attr_from_inode(&root_attr, parent_fi);
+	fuse_fill_attr_from_inode(&root_attr, &parent_fi->inode);
 	root = fuse_iget(sb, parent_fi->nodeid, 0, &root_attr, 0, 0);
 	/*
 	 * This inode is just a duplicate, so it is not looked up and
@@ -1553,13 +1694,16 @@
 	fc->destroy = ctx->destroy;
 	fc->no_control = ctx->no_control;
 	fc->no_force_umount = ctx->no_force_umount;
+	fc->no_daemon = ctx->no_daemon;
 
 	err = -ENOMEM;
-	root = fuse_get_root_inode(sb, ctx->rootmode);
+	root = fuse_get_root_inode(sb, ctx->rootmode, ctx->root_bpf,
+				   ctx->root_dir);
 	sb->s_d_op = &fuse_root_dentry_operations;
 	root_dentry = d_make_root(root);
 	if (!root_dentry)
 		goto err_dev_free;
+	fuse_init_dentry_root(root_dentry, ctx->root_dir);
 	/* Root dentry doesn't have .d_revalidate */
 	sb->s_d_op = &fuse_dentry_operations;
 
@@ -1598,18 +1742,20 @@
 	struct fuse_fs_context *ctx = fsc->fs_private;
 	int err;
 
-	if (!ctx->file || !ctx->rootmode_present ||
-	    !ctx->user_id_present || !ctx->group_id_present)
-		return -EINVAL;
+	if (!ctx->no_daemon) {
+		if (!ctx->file || !ctx->rootmode_present ||
+		    !ctx->user_id_present || !ctx->group_id_present)
+			return -EINVAL;
 
-	/*
-	 * Require mount to happen from the same user namespace which
-	 * opened /dev/fuse to prevent potential attacks.
-	 */
-	if ((ctx->file->f_op != &fuse_dev_operations) ||
-	    (ctx->file->f_cred->user_ns != sb->s_user_ns))
-		return -EINVAL;
-	ctx->fudptr = &ctx->file->private_data;
+		/*
+		 * Require mount to happen from the same user namespace which
+		 * opened /dev/fuse to prevent potential attacks.
+		 */
+		if ((ctx->file->f_op != &fuse_dev_operations) ||
+		    (ctx->file->f_cred->user_ns != sb->s_user_ns))
+			return -EINVAL;
+		ctx->fudptr = &ctx->file->private_data;
+	}
 
 	err = fuse_fill_super_common(sb, ctx);
 	if (err)
@@ -1890,6 +2036,57 @@
 
 static struct kobject *fuse_kobj;
 
+static ssize_t fuse_bpf_show(struct kobject *kobj,
+				       struct kobj_attribute *attr, char *buff)
+{
+	return sysfs_emit(buff, "supported\n");
+}
+
+static struct kobj_attribute fuse_bpf_attr =
+		__ATTR_RO(fuse_bpf);
+
+static struct attribute *bpf_features[] = {
+	&fuse_bpf_attr.attr,
+	NULL,
+};
+
+static const struct attribute_group bpf_features_group = {
+	.name = "features",
+	.attrs = bpf_features,
+};
+
+/*
+ * TODO Remove this once fuse-bpf is upstreamed
+ *
+ * bpf_prog_type_fuse exports the bpf_prog_type_fuse 'constant', which cannot be
+ * constant until the code is upstreamed
+ */
+static ssize_t bpf_prog_type_fuse_show(struct kobject *kobj,
+				       struct kobj_attribute *attr, char *buff)
+{
+	return sysfs_emit(buff, "%d\n", BPF_PROG_TYPE_FUSE);
+}
+
+static struct kobj_attribute bpf_prog_type_fuse_attr =
+		__ATTR_RO(bpf_prog_type_fuse);
+
+static struct attribute *bpf_attributes[] = {
+	&bpf_prog_type_fuse_attr.attr,
+	NULL,
+};
+
+static const struct attribute_group bpf_attr_group = {
+	.attrs = bpf_attributes,
+};
+
+static const struct attribute_group *attribute_groups[] = {
+	&bpf_features_group,
+	&bpf_attr_group,
+	NULL
+};
+
+/* TODO remove to here */
+
 static int fuse_sysfs_init(void)
 {
 	int err;
@@ -1904,8 +2101,15 @@
 	if (err)
 		goto out_fuse_unregister;
 
+	/* TODO Remove when BPF_PROG_TYPE_FUSE is upstreamed */
+	err = sysfs_create_groups(fuse_kobj, attribute_groups);
+	if (err)
+		goto out_fuse_remove_mount_point;
+
 	return 0;
 
+ out_fuse_remove_mount_point:
+	sysfs_remove_mount_point(fuse_kobj, "connections");
  out_fuse_unregister:
 	kobject_put(fuse_kobj);
  out_err:
@@ -1914,6 +2118,7 @@
 
 static void fuse_sysfs_cleanup(void)
 {
+	sysfs_remove_groups(fuse_kobj, attribute_groups);
 	sysfs_remove_mount_point(fuse_kobj, "connections");
 	kobject_put(fuse_kobj);
 }
@@ -1942,11 +2147,21 @@
 	if (res)
 		goto err_sysfs_cleanup;
 
+#ifdef CONFIG_FUSE_BPF
+	res = fuse_bpf_init();
+	if (res)
+		goto err_ctl_cleanup;
+#endif
+
 	sanitize_global_limit(&max_user_bgreq);
 	sanitize_global_limit(&max_user_congthresh);
 
 	return 0;
 
+#ifdef CONFIG_FUSE_BPF
+ err_ctl_cleanup:
+	fuse_ctl_cleanup();
+#endif
  err_sysfs_cleanup:
 	fuse_sysfs_cleanup();
  err_dev_cleanup:
@@ -1964,6 +2179,9 @@
 	fuse_ctl_cleanup();
 	fuse_sysfs_cleanup();
 	fuse_fs_cleanup();
+#ifdef CONFIG_FUSE_BPF
+	fuse_bpf_cleanup();
+#endif
 	fuse_dev_cleanup();
 }
 
diff --git a/fs/fuse/passthrough.c b/fs/fuse/passthrough.c
index 83125de..6031e72 100644
--- a/fs/fuse/passthrough.c
+++ b/fs/fuse/passthrough.c
@@ -34,7 +34,7 @@
 	touch_atime(&dst_file->f_path);
 }
 
-static void fuse_copyattr(struct file *dst_file, struct file *src_file)
+void fuse_copyattr(struct file *dst_file, struct file *src_file)
 {
 	struct inode *dst = file_inode(dst_file);
 	struct inode *src = file_inode(src_file);
diff --git a/fs/fuse/readdir.c b/fs/fuse/readdir.c
index d5294e6..0516686 100644
--- a/fs/fuse/readdir.c
+++ b/fs/fuse/readdir.c
@@ -20,6 +20,8 @@
 
 	if (!fc->do_readdirplus)
 		return false;
+	if (fi->nodeid == 0)
+		return false;
 	if (!fc->readdirplus_auto)
 		return true;
 	if (test_and_clear_bit(FUSE_I_ADVISE_RDPLUS, &fi->state))
@@ -579,6 +581,26 @@
 	struct inode *inode = file_inode(file);
 	int err;
 
+#ifdef CONFIG_FUSE_BPF
+	struct fuse_err_ret fer;
+	bool allow_force;
+	bool force_again = false;
+	bool is_continued = false;
+
+again:
+	fer = fuse_bpf_backing(inode, struct fuse_read_io,
+			       fuse_readdir_initialize, fuse_readdir_backing,
+			       fuse_readdir_finalize,
+			       file, ctx, &force_again, &allow_force, is_continued);
+	if (force_again && !IS_ERR(fer.result)) {
+		is_continued = true;
+		goto again;
+	}
+
+	if (fer.ret)
+		return PTR_ERR(fer.result);
+#endif
+
 	if (fuse_is_bad(inode))
 		return -EIO;
 
diff --git a/fs/fuse/xattr.c b/fs/fuse/xattr.c
index 61dfaf7..6c95d0d 100644
--- a/fs/fuse/xattr.c
+++ b/fs/fuse/xattr.c
@@ -116,6 +116,17 @@
 	struct fuse_getxattr_out outarg;
 	ssize_t ret;
 
+#ifdef CONFIG_FUSE_BPF
+	struct fuse_err_ret fer;
+
+	fer = fuse_bpf_backing(inode, struct fuse_getxattr_io,
+			       fuse_listxattr_initialize,
+			       fuse_listxattr_backing, fuse_listxattr_finalize,
+			       entry, list, size);
+	if (fer.ret)
+		return PTR_ERR(fer.result);
+#endif
+
 	if (fuse_is_bad(inode))
 		return -EIO;
 
@@ -184,6 +195,17 @@
 			 struct dentry *dentry, struct inode *inode,
 			 const char *name, void *value, size_t size)
 {
+#ifdef CONFIG_FUSE_BPF
+	struct fuse_err_ret fer;
+
+	fer = fuse_bpf_backing(inode, struct fuse_getxattr_io,
+			       fuse_getxattr_initialize, fuse_getxattr_backing,
+			       fuse_getxattr_finalize,
+			       dentry, name, value, size);
+	if (fer.ret)
+		return PTR_ERR(fer.result);
+#endif
+
 	if (fuse_is_bad(inode))
 		return -EIO;
 
@@ -196,6 +218,24 @@
 			  const char *name, const void *value, size_t size,
 			  int flags)
 {
+#ifdef CONFIG_FUSE_BPF
+	struct fuse_err_ret fer;
+
+	if (value)
+		fer = fuse_bpf_backing(inode, struct fuse_setxattr_in,
+			       fuse_setxattr_initialize, fuse_setxattr_backing,
+			       fuse_setxattr_finalize, dentry, name, value,
+			       size, flags);
+	else
+		fer = fuse_bpf_backing(inode, struct fuse_dummy_io,
+				       fuse_removexattr_initialize,
+				       fuse_removexattr_backing,
+				       fuse_removexattr_finalize,
+				       dentry, name);
+	if (fer.ret)
+		return PTR_ERR(fer.result);
+#endif
+
 	if (fuse_is_bad(inode))
 		return -EIO;
 
diff --git a/fs/incfs/data_mgmt.c b/fs/incfs/data_mgmt.c
index 1382bec..5abb20a 100644
--- a/fs/incfs/data_mgmt.c
+++ b/fs/incfs/data_mgmt.c
@@ -3,7 +3,6 @@
  * Copyright 2019 Google LLC
  */
 #include <linux/crc32.h>
-#include <linux/delay.h>
 #include <linux/file.h>
 #include <linux/fsverity.h>
 #include <linux/gfp.h>
@@ -1106,25 +1105,10 @@
 	wake_up_all(&mi->mi_blocks_written_notif_wq);
 }
 
-static int usleep_interruptible(u32 us)
-{
-	/* See:
-	 * https://www.kernel.org/doc/Documentation/timers/timers-howto.txt
-	 * for explanation
-	 */
-	if (us < 10) {
-		udelay(us);
-		return 0;
-	} else if (us < 20000) {
-		usleep_range(us, us + us / 10);
-		return 0;
-	} else
-		return msleep_interruptible(us / 1000);
-}
-
 static int wait_for_data_block(struct data_file *df, int block_index,
 			       struct data_file_block *res_block,
-			       struct incfs_read_data_file_timeouts *timeouts)
+			       struct incfs_read_data_file_timeouts *timeouts,
+			       unsigned int *delayed_min_us)
 {
 	struct data_file_block block = {};
 	struct data_file_segment *segment = NULL;
@@ -1132,7 +1116,7 @@
 	struct mount_info *mi = NULL;
 	int error;
 	int wait_res = 0;
-	unsigned int delayed_pending_us = 0, delayed_min_us = 0;
+	unsigned int delayed_pending_us = 0;
 	bool delayed_pending = false;
 
 	if (!df || !res_block)
@@ -1163,8 +1147,7 @@
 	if (is_data_block_present(&block)) {
 		*res_block = block;
 		if (timeouts && timeouts->min_time_us) {
-			delayed_min_us = timeouts->min_time_us;
-			error = usleep_interruptible(delayed_min_us);
+			*delayed_min_us = timeouts->min_time_us;
 			goto out;
 		}
 		return 0;
@@ -1211,13 +1194,9 @@
 	delayed_pending = true;
 	delayed_pending_us = timeouts->max_pending_time_us -
 				jiffies_to_usecs(wait_res);
-	if (timeouts->min_pending_time_us > delayed_pending_us) {
-		delayed_min_us = timeouts->min_pending_time_us -
+	if (timeouts->min_pending_time_us > delayed_pending_us)
+		*delayed_min_us = timeouts->min_pending_time_us -
 					     delayed_pending_us;
-		error = usleep_interruptible(delayed_min_us);
-		if (error)
-			return error;
-	}
 
 	error = down_read_killable(&segment->rwsem);
 	if (error)
@@ -1252,9 +1231,9 @@
 			delayed_pending_us;
 	}
 
-	if (delayed_min_us) {
+	if (delayed_min_us && *delayed_min_us) {
 		mi->mi_reads_delayed_min++;
-		mi->mi_reads_delayed_min_us += delayed_min_us;
+		mi->mi_reads_delayed_min_us += *delayed_min_us;
 	}
 
 	return 0;
@@ -1284,7 +1263,8 @@
 
 ssize_t incfs_read_data_file_block(struct mem_range dst, struct file *f,
 			int index, struct mem_range tmp,
-			struct incfs_read_data_file_timeouts *timeouts)
+			struct incfs_read_data_file_timeouts *timeouts,
+			unsigned int *delayed_min_us)
 {
 	loff_t pos;
 	ssize_t result;
@@ -1303,7 +1283,8 @@
 	mi = df->df_mount_info;
 	bfc = df->df_backing_file_context;
 
-	result = wait_for_data_block(df, index, &block, timeouts);
+	result = wait_for_data_block(df, index, &block, timeouts,
+				     delayed_min_us);
 	if (result < 0)
 		goto out;
 
@@ -1381,7 +1362,8 @@
 }
 
 int incfs_process_new_data_block(struct data_file *df,
-				 struct incfs_fill_block *block, u8 *data)
+				 struct incfs_fill_block *block, u8 *data,
+				 bool *complete)
 {
 	struct mount_info *mi = NULL;
 	struct backing_file_context *bfc = NULL;
@@ -1420,27 +1402,42 @@
 
 	if (error)
 		return error;
-	if (is_data_block_present(&existing_block)) {
+	if (is_data_block_present(&existing_block))
 		/* Block is already present, nothing to do here */
 		return 0;
-	}
 
 	error = down_write_killable(&segment->rwsem);
 	if (error)
 		return error;
 
-	error = mutex_lock_interruptible(&bfc->bc_mutex);
-	if (!error) {
-		error = incfs_write_data_block_to_backing_file(
-			bfc, range(data, block->data_len), block->block_index,
-			df->df_blockmap_off, flags);
-		mutex_unlock(&bfc->bc_mutex);
-	}
-	if (!error) {
-		notify_pending_reads(mi, segment, block->block_index);
-		atomic_inc(&df->df_data_blocks_written);
-	}
+	/* Recheck inside write lock */
+	error = get_data_file_block(df, block->block_index, &existing_block);
+	if (error)
+		goto out_up_write;
 
+	if (is_data_block_present(&existing_block))
+		goto out_up_write;
+
+	error = mutex_lock_interruptible(&bfc->bc_mutex);
+	if (error)
+		goto out_up_write;
+
+	error = incfs_write_data_block_to_backing_file(bfc,
+			range(data, block->data_len), block->block_index,
+			df->df_blockmap_off, flags);
+	if (error)
+		goto out_mutex_unlock;
+
+	if (atomic_inc_return(&df->df_data_blocks_written)
+			>= df->df_data_block_count)
+		*complete = true;
+
+out_mutex_unlock:
+	mutex_unlock(&bfc->bc_mutex);
+	if (!error)
+		notify_pending_reads(mi, segment, block->block_index);
+
+out_up_write:
 	up_write(&segment->rwsem);
 
 	if (error)
diff --git a/fs/incfs/data_mgmt.h b/fs/incfs/data_mgmt.h
index 2227913..8bd5c2f 100644
--- a/fs/incfs/data_mgmt.h
+++ b/fs/incfs/data_mgmt.h
@@ -429,7 +429,8 @@
 
 ssize_t incfs_read_data_file_block(struct mem_range dst, struct file *f,
 			int index, struct mem_range tmp,
-			struct incfs_read_data_file_timeouts *timeouts);
+			struct incfs_read_data_file_timeouts *timeouts,
+			unsigned int *delayed_min_us);
 
 ssize_t incfs_read_merkle_tree_blocks(struct mem_range dst,
 				      struct data_file *df, size_t offset);
@@ -441,7 +442,8 @@
 int incfs_read_file_signature(struct data_file *df, struct mem_range dst);
 
 int incfs_process_new_data_block(struct data_file *df,
-				 struct incfs_fill_block *block, u8 *data);
+				 struct incfs_fill_block *block, u8 *data,
+				 bool *complete);
 
 int incfs_process_new_hash_block(struct data_file *df,
 				 struct incfs_fill_block *block, u8 *data);
diff --git a/fs/incfs/sysfs.c b/fs/incfs/sysfs.c
index 360f03c..5c7e0fd 100644
--- a/fs/incfs/sysfs.c
+++ b/fs/incfs/sysfs.c
@@ -33,11 +33,13 @@
 DECLARE_FEATURE_FLAG(corefs);
 DECLARE_FEATURE_FLAG(zstd);
 DECLARE_FEATURE_FLAG(v2);
+DECLARE_FEATURE_FLAG(bugfix_throttling);
 
 static struct attribute *attributes[] = {
 	&corefs_attr.attr,
 	&zstd_attr.attr,
 	&v2_attr.attr,
+	&bugfix_throttling_attr.attr,
 	NULL,
 };
 
diff --git a/fs/incfs/verity.c b/fs/incfs/verity.c
index b69656b..562a8e77 100644
--- a/fs/incfs/verity.c
+++ b/fs/incfs/verity.c
@@ -323,7 +323,7 @@
 
 			if (lvl == 0)
 				result = incfs_read_data_file_block(partial_buf,
-						f, i, tmp, NULL);
+						f, i, tmp, NULL, NULL);
 			else {
 				hash_level_offset = hash_offset +
 				       hash_tree->hash_level_suboffset[lvl - 1];
diff --git a/fs/incfs/vfs.c b/fs/incfs/vfs.c
index cde9fe9..61d6216 100644
--- a/fs/incfs/vfs.c
+++ b/fs/incfs/vfs.c
@@ -5,6 +5,7 @@
 
 #include <linux/blkdev.h>
 #include <linux/compat.h>
+#include <linux/delay.h>
 #include <linux/file.h>
 #include <linux/fs.h>
 #include <linux/fs_stack.h>
@@ -483,7 +484,8 @@
 
 static int read_single_page_timeouts(struct data_file *df, struct file *f,
 				     int block_index, struct mem_range range,
-				     struct mem_range tmp)
+				     struct mem_range tmp,
+				     unsigned int *delayed_min_us)
 {
 	struct mount_info *mi = df->df_mount_info;
 	struct incfs_read_data_file_timeouts timeouts = {
@@ -515,7 +517,23 @@
 	}
 
 	return incfs_read_data_file_block(range, f, block_index, tmp,
-					  &timeouts);
+					  &timeouts, delayed_min_us);
+}
+
+static int usleep_interruptible(u32 us)
+{
+	/* See:
+	 * https://www.kernel.org/doc/Documentation/timers/timers-howto.txt
+	 * for explanation
+	 */
+	if (us < 10) {
+		udelay(us);
+		return 0;
+	} else if (us < 20000) {
+		usleep_range(us, us + us / 10);
+		return 0;
+	} else
+		return msleep_interruptible(us / 1000);
 }
 
 static int read_single_page(struct file *f, struct page *page)
@@ -528,6 +546,7 @@
 	int result = 0;
 	void *page_start;
 	int block_index;
+	unsigned int delayed_min_us = 0;
 
 	if (!df) {
 		SetPageError(page);
@@ -553,7 +572,8 @@
 		bytes_to_read = min_t(loff_t, size - offset, PAGE_SIZE);
 
 		read_result = read_single_page_timeouts(df, f, block_index,
-					range(page_start, bytes_to_read), tmp);
+					range(page_start, bytes_to_read), tmp,
+					&delayed_min_us);
 
 		free_pages((unsigned long)tmp.data, get_order(tmp.len));
 	} else {
@@ -575,6 +595,8 @@
 	flush_dcache_page(page);
 	kunmap(page);
 	unlock_page(page);
+	if (delayed_min_us)
+		usleep_interruptible(delayed_min_us);
 	return result;
 }
 
@@ -668,8 +690,7 @@
 	dput(file);
 }
 
-static void maybe_delete_incomplete_file(struct file *f,
-					 struct data_file *df)
+static void handle_file_completed(struct file *f, struct data_file *df)
 {
 	struct backing_file_context *bfc;
 	struct mount_info *mi = df->df_mount_info;
@@ -678,9 +699,6 @@
 	const struct cred *old_cred = override_creds(mi->mi_owner);
 	int error;
 
-	if (atomic_read(&df->df_data_blocks_written) < df->df_data_block_count)
-		goto out;
-
 	/* Truncate file to remove any preallocated space */
 	bfc = df->df_backing_file_context;
 	if (bfc) {
@@ -739,6 +757,7 @@
 	u8 *data_buf = NULL;
 	ssize_t error = 0;
 	int i = 0;
+	bool complete = false;
 
 	if (!df)
 		return -EBADF;
@@ -780,7 +799,7 @@
 							     data_buf);
 		} else {
 			error = incfs_process_new_data_block(df, &fill_block,
-							     data_buf);
+							data_buf, &complete);
 		}
 		if (error)
 			break;
@@ -789,7 +808,8 @@
 	if (data_buf)
 		free_pages((unsigned long)data_buf, get_order(data_buf_size));
 
-	maybe_delete_incomplete_file(f, df);
+	if (complete)
+		handle_file_completed(f, df);
 
 	/*
 	 * Only report the error if no records were processed, otherwise
diff --git a/include/linux/bpf_types.h b/include/linux/bpf_types.h
index bbe1eef..a49d350 100644
--- a/include/linux/bpf_types.h
+++ b/include/linux/bpf_types.h
@@ -79,6 +79,9 @@
 #endif
 BPF_PROG_TYPE(BPF_PROG_TYPE_SYSCALL, bpf_syscall,
 	      void *, void *)
+#ifdef CONFIG_FUSE_BPF
+BPF_PROG_TYPE(BPF_PROG_TYPE_FUSE, fuse, struct fuse_bpf_args, struct fuse_bpf_args)
+#endif
 
 BPF_MAP_TYPE(BPF_MAP_TYPE_ARRAY, array_map_ops)
 BPF_MAP_TYPE(BPF_MAP_TYPE_PERCPU_ARRAY, percpu_array_map_ops)
diff --git a/include/linux/elfcore.h b/include/linux/elfcore.h
index a9ceb72..42c34a6 100644
--- a/include/linux/elfcore.h
+++ b/include/linux/elfcore.h
@@ -118,14 +118,14 @@
  * Dumping its extra ELF program headers includes all the other information
  * a debugger needs to easily find how the gate DSO was being used.
  */
-extern Elf_Half elf_core_extra_phdrs(void);
+extern Elf_Half elf_core_extra_phdrs(struct coredump_params *cprm);
 extern int
 elf_core_write_extra_phdrs(struct coredump_params *cprm, loff_t offset);
 extern int
 elf_core_write_extra_data(struct coredump_params *cprm);
-extern size_t elf_core_extra_data_size(void);
+extern size_t elf_core_extra_data_size(struct coredump_params *cprm);
 #else
-static inline Elf_Half elf_core_extra_phdrs(void)
+static inline Elf_Half elf_core_extra_phdrs(struct coredump_params *cprm)
 {
 	return 0;
 }
@@ -140,7 +140,7 @@
 	return 1;
 }
 
-static inline size_t elf_core_extra_data_size(void)
+static inline size_t elf_core_extra_data_size(struct coredump_params *cprm)
 {
 	return 0;
 }
diff --git a/include/linux/eventfd.h b/include/linux/eventfd.h
index 842d223d..10d5922 100644
--- a/include/linux/eventfd.h
+++ b/include/linux/eventfd.h
@@ -73,6 +73,12 @@
 	return -ENOSYS;
 }
 
+static inline int eventfd_signal_mask(struct eventfd_ctx *ctx, __u64 n,
+				      unsigned mask)
+{
+	return -ENOSYS;
+}
+
 static inline void eventfd_ctx_put(struct eventfd_ctx *ctx)
 {
 
diff --git a/include/linux/hid.h b/include/linux/hid.h
index f5ebf6c..8e38fea 100644
--- a/include/linux/hid.h
+++ b/include/linux/hid.h
@@ -156,6 +156,7 @@
 #define HID_UP_DIGITIZER	0x000d0000
 #define HID_UP_PID		0x000f0000
 #define HID_UP_BATTERY		0x00850000
+#define HID_UP_CAMERA 		0x00900000
 #define HID_UP_HPVENDOR         0xff7f0000
 #define HID_UP_HPVENDOR2        0xff010000
 #define HID_UP_MSVENDOR		0xff000000
diff --git a/include/linux/ieee80211.h b/include/linux/ieee80211.h
index 1fb9258..1d3fbd2 100644
--- a/include/linux/ieee80211.h
+++ b/include/linux/ieee80211.h
@@ -4476,7 +4476,7 @@
 		return 0;
 	}
 
-	return common + mle->variable[0];
+	return sizeof(*mle) + common + mle->variable[0];
 }
 
 /**
diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h
index 12e91d2..b636cdb 100644
--- a/include/net/cfg80211.h
+++ b/include/net/cfg80211.h
@@ -1379,6 +1379,9 @@
  * @fils_discovery: FILS discovery transmission parameters
  * @unsol_bcast_probe_resp: Unsolicited broadcast probe response parameters
  * @mbssid_config: AP settings for multiple bssid
+ * @punct_bitmap: Preamble puncturing bitmap. Each bit represents
+ *	a 20 MHz channel, lowest bit corresponding to the lowest channel.
+ *	Bit set to 1 indicates that the channel is punctured.
  */
 struct cfg80211_ap_settings {
 	struct cfg80211_chan_def chandef;
@@ -1413,6 +1416,7 @@
 	struct cfg80211_fils_discovery fils_discovery;
 	struct cfg80211_unsol_bcast_probe_resp unsol_bcast_probe_resp;
 	struct cfg80211_mbssid_config mbssid_config;
+	u16 punct_bitmap;
 
 	ANDROID_BACKPORT_RESERVED(1);
 	ANDROID_BACKPORT_RESERVED(2);
@@ -1444,6 +1448,9 @@
  * @radar_required: whether radar detection is required on the new channel
  * @block_tx: whether transmissions should be blocked while changing
  * @count: number of beacons until switch
+ * @punct_bitmap: Preamble puncturing bitmap. Each bit represents
+ *	a 20 MHz channel, lowest bit corresponding to the lowest channel.
+ *	Bit set to 1 indicates that the channel is punctured.
  */
 struct cfg80211_csa_settings {
 	struct cfg80211_chan_def chandef;
@@ -1456,6 +1463,7 @@
 	bool radar_required;
 	bool block_tx;
 	u8 count;
+	u16 punct_bitmap;
 
 	ANDROID_BACKPORT_RESERVED(1);
 	ANDROID_BACKPORT_RESERVED(2);
@@ -1979,6 +1987,24 @@
  *	received packet with an FCS error matches the peer MAC address.
  * @airtime_link_metric: mesh airtime link metric.
  * @connected_to_as: true if mesh STA has a path to authentication server
+ * @mlo_params_valid: Indicates @assoc_link_id and @mld_addr fields are filled
+ *	by driver. Drivers use this only in cfg80211_new_sta() calls when AP
+ *	MLD's MLME/SME is offload to driver. Drivers won't fill this
+ *	information in cfg80211_del_sta_sinfo(), get_station() and
+ *	dump_station() callbacks.
+ * @assoc_link_id: Indicates MLO link ID of the AP, with which the station
+ *	completed (re)association. This information filled for both MLO
+ *	and non-MLO STA connections when the AP affiliated with an MLD.
+ * @mld_addr: For MLO STA connection, filled with MLD address of the station.
+ *	For non-MLO STA connection, filled with all zeros.
+ * @assoc_resp_ies: IEs from (Re)Association Response.
+ *	This is used only when in AP mode with drivers that do not use user
+ *	space MLME/SME implementation. The information is provided only for the
+ *	cfg80211_new_sta() calls to notify user space of the IEs. Drivers won't
+ *	fill this information in cfg80211_del_sta_sinfo(), get_station() and
+ *	dump_station() callbacks. User space needs this information to determine
+ *	the accepted and rejected affiliated links of the connected station.
+ * @assoc_resp_ies_len: Length of @assoc_resp_ies buffer in octets.
  */
 struct station_info {
 	u64 filled;
@@ -2039,6 +2065,12 @@
 
 	u8 connected_to_as;
 
+	bool mlo_params_valid;
+	u8 assoc_link_id;
+	u8 mld_addr[ETH_ALEN] __aligned(2);
+	const u8 *assoc_resp_ies;
+	size_t assoc_resp_ies_len;
+
 	ANDROID_BACKPORT_RESERVED(1);
 	ANDROID_BACKPORT_RESERVED(2);
 	ANDROID_BACKPORT_RESERVED(3);
@@ -3803,6 +3835,17 @@
  *	the real status code for failures. Used only for the authentication
  *	response command interface (user space to driver).
  * @pmkid: The identifier to refer a PMKSA.
+ * @mld_addr: MLD address of the peer. Used by the authentication request event
+ *	interface. Driver indicates this to enable MLO during the authentication
+ *	offload to user space. Driver shall look at %NL80211_ATTR_MLO_SUPPORT
+ *	flag capability in NL80211_CMD_CONNECT to know whether the user space
+ *	supports enabling MLO during the authentication offload.
+ *	User space should use the address of the interface (on which the
+ *	authentication request event reported) as self MLD address. User space
+ *	and driver should use MLD addresses in RA, TA and BSSID fields of
+ *	authentication frames sent or received via cfg80211. The driver
+ *	translates the MLD addresses to/from link addresses based on the link
+ *	chosen for the authentication.
  */
 struct cfg80211_external_auth_params {
 	enum nl80211_external_auth_action action;
@@ -3811,6 +3854,7 @@
 	unsigned int key_mgmt_suite;
 	u16 status;
 	const u8 *pmkid;
+	u8 mld_addr[ETH_ALEN] __aligned(2);
 
 	ANDROID_BACKPORT_RESERVED(1);
 	ANDROID_BACKPORT_RESERVED(2);
@@ -4075,12 +4119,22 @@
  *	the IEs of the remote peer in the event from the host driver and
  *	the constructed IEs by the user space in the request interface.
  * @ie_len: Length of IEs in octets.
+ * @assoc_link_id: MLO link ID of the AP, with which (re)association requested
+ *	by peer. This will be filled by driver for both MLO and non-MLO station
+ *	connections when the AP affiliated with an MLD. For non-MLD AP mode, it
+ *	will be -1. Used only with OWE update event (driver to user space).
+ * @peer_mld_addr: For MLO connection, MLD address of the peer. For non-MLO
+ *	connection, it will be all zeros. This is applicable only when
+ *	@assoc_link_id is not -1, i.e., the AP affiliated with an MLD. Used only
+ *	with OWE update event (driver to user space).
  */
 struct cfg80211_update_owe_info {
 	u8 peer[ETH_ALEN] __aligned(2);
 	u16 status;
 	const u8 *ie;
 	size_t ie_len;
+	int assoc_link_id;
+	u8 peer_mld_addr[ETH_ALEN] __aligned(2);
 
 	ANDROID_BACKPORT_RESERVED(1);
 	ANDROID_BACKPORT_RESERVED(2);
@@ -4922,6 +4976,7 @@
  *	in order to not have them reachable in normal drivers, until we have
  *	complete feature/interface combinations/etc. advertisement. No driver
  *	should set this flag for now.
+ * @WIPHY_FLAG_SUPPORTS_EXT_KCK_32: The device supports 32-byte KCK keys.
  */
 enum wiphy_flags {
 	WIPHY_FLAG_SUPPORTS_EXT_KEK_KCK		= BIT(0),
@@ -4934,7 +4989,7 @@
 	WIPHY_FLAG_CONTROL_PORT_PROTOCOL	= BIT(7),
 	WIPHY_FLAG_IBSS_RSN			= BIT(8),
 	WIPHY_FLAG_MESH_AUTH			= BIT(10),
-	/* use hole at 11 */
+	WIPHY_FLAG_SUPPORTS_EXT_KCK_32          = BIT(11),
 	/* use hole at 12 */
 	WIPHY_FLAG_SUPPORTS_FW_ROAM		= BIT(13),
 	WIPHY_FLAG_AP_UAPSD			= BIT(14),
@@ -8012,6 +8067,8 @@
  *
  * @dev: network device
  * @bssid: the BSSID of the AP
+ * @td_bitmap: transition disable policy
+ * @td_bitmap_len: Length of transition disable policy
  * @gfp: allocation flags
  *
  * This function should be called by a driver that supports 4 way handshake
@@ -8022,7 +8079,7 @@
  * indicate the 802.11 association.
  */
 void cfg80211_port_authorized(struct net_device *dev, const u8 *bssid,
-			      gfp_t gfp);
+			      const u8* td_bitmap, u8 td_bitmap_len, gfp_t gfp);
 
 /**
  * cfg80211_disconnected - notify cfg80211 that connection was dropped
@@ -8607,13 +8664,14 @@
  * @dev: the device which switched channels
  * @chandef: the new channel definition
  * @link_id: the link ID for MLO, must be 0 for non-MLO
+ * @punct_bitmap: the new puncturing bitmap
  *
  * Caller must acquire wdev_lock, therefore must only be called from sleepable
  * driver context!
  */
 void cfg80211_ch_switch_notify(struct net_device *dev,
 			       struct cfg80211_chan_def *chandef,
-			       unsigned int link_id);
+			       unsigned int link_id, u16 punct_bitmap);
 
 /*
  * cfg80211_ch_switch_started_notify - notify channel switch start
@@ -8622,6 +8680,7 @@
  * @link_id: the link ID for MLO, must be 0 for non-MLO
  * @count: the number of TBTTs until the channel switch happens
  * @quiet: whether or not immediate quiet was requested by the AP
+ * @punct_bitmap: the future puncturing bitmap
  *
  * Inform the userspace about the channel switch that has just
  * started, so that it can take appropriate actions (eg. starting
@@ -8630,7 +8689,7 @@
 void cfg80211_ch_switch_started_notify(struct net_device *dev,
 				       struct cfg80211_chan_def *chandef,
 				       unsigned int link_id, u8 count,
-				       bool quiet);
+				       bool quiet, u16 punct_bitmap);
 
 /**
  * ieee80211_operating_class_to_band - convert operating class to band
@@ -9244,4 +9303,16 @@
 					 0, 0);
 }
 
+/**
+ * cfg80211_valid_disable_subchannel_bitmap - validate puncturing bitmap
+ * @bitmap: bitmap to be validated
+ * @chandef: channel definition
+ *
+ * Validate the puncturing bitmap.
+ *
+ * Return: %true if the bitmap is valid. %false otherwise.
+ */
+bool cfg80211_valid_disable_subchannel_bitmap(u16 *bitmap,
+					      const struct cfg80211_chan_def *chandef);
+
 #endif /* __NET_CFG80211_H */
diff --git a/include/trace/hooks/binder.h b/include/trace/hooks/binder.h
index 99ee00c..b442c86 100644
--- a/include/trace/hooks/binder.h
+++ b/include/trace/hooks/binder.h
@@ -43,10 +43,6 @@
 DECLARE_HOOK(android_vh_sync_txn_recvd,
 	TP_PROTO(struct task_struct *tsk, struct task_struct *from),
 	TP_ARGS(tsk, from));
-DECLARE_RESTRICTED_HOOK(android_rvh_binder_transaction,
-	TP_PROTO(struct binder_proc *target_proc, struct binder_proc *proc,
-		struct binder_thread *thread, struct binder_transaction_data *tr),
-	TP_ARGS(target_proc, proc, thread, tr), 1);
 DECLARE_HOOK(android_vh_binder_proc_transaction_entry,
 	TP_PROTO(struct binder_proc *proc, struct binder_transaction *t,
 	struct binder_thread **thread, int node_debug_id, bool pending_async,
diff --git a/include/trace/hooks/dtask.h b/include/trace/hooks/dtask.h
index 2b733d4..d72bcb6 100644
--- a/include/trace/hooks/dtask.h
+++ b/include/trace/hooks/dtask.h
@@ -32,6 +32,15 @@
 DECLARE_HOOK(android_vh_mutex_init,
 	TP_PROTO(struct mutex *lock),
 	TP_ARGS(lock));
+DECLARE_HOOK(android_vh_mutex_opt_spin_start,
+	TP_PROTO(struct mutex *lock, bool *time_out, int *cnt),
+	TP_ARGS(lock, time_out, cnt));
+DECLARE_HOOK(android_vh_mutex_opt_spin_finish,
+	TP_PROTO(struct mutex *lock, bool taken),
+	TP_ARGS(lock, taken));
+DECLARE_HOOK(android_vh_mutex_can_spin_on_owner,
+	TP_PROTO(struct mutex *lock, int *retval),
+	TP_ARGS(lock, retval));
 
 DECLARE_HOOK(android_vh_rtmutex_wait_start,
 	TP_PROTO(struct rt_mutex_base *lock),
@@ -52,6 +61,15 @@
 DECLARE_HOOK(android_vh_rwsem_write_wait_finish,
 	TP_PROTO(struct rw_semaphore *sem),
 	TP_ARGS(sem));
+DECLARE_HOOK(android_vh_rwsem_opt_spin_start,
+	TP_PROTO(struct rw_semaphore *sem, bool *time_out, int *cnt, bool chk_only),
+	TP_ARGS(sem, time_out, cnt, chk_only));
+DECLARE_HOOK(android_vh_rwsem_opt_spin_finish,
+	TP_PROTO(struct rw_semaphore *sem, bool taken),
+	TP_ARGS(sem, taken));
+DECLARE_HOOK(android_vh_rwsem_can_spin_on_owner,
+	TP_PROTO(struct rw_semaphore *sem, bool *ret),
+	TP_ARGS(sem, ret));
 
 DECLARE_HOOK(android_vh_sched_show_task,
 	TP_PROTO(struct task_struct *task),
diff --git a/include/trace/hooks/psi.h b/include/trace/hooks/psi.h
new file mode 100644
index 0000000..91a0086
--- /dev/null
+++ b/include/trace/hooks/psi.h
@@ -0,0 +1,25 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+#undef TRACE_SYSTEM
+#define TRACE_SYSTEM psi
+
+#define TRACE_INCLUDE_PATH trace/hooks
+
+#if !defined(_TRACE_HOOK_PSI_H) || defined(TRACE_HEADER_MULTI_READ)
+#define _TRACE_HOOK_PSI_H
+
+#include <trace/hooks/vendor_hooks.h>
+
+struct psi_trigger;
+struct psi_group;
+DECLARE_HOOK(android_vh_psi_event,
+	TP_PROTO(struct psi_trigger *t),
+	TP_ARGS(t));
+
+DECLARE_HOOK(android_vh_psi_group,
+	TP_PROTO(struct psi_group *group),
+	TP_ARGS(group));
+
+#endif /* _TRACE_HOOK_PSI_H */
+
+/* This part must be outside protection */
+#include <trace/define_trace.h>
diff --git a/include/trace/hooks/thermal.h b/include/trace/hooks/thermal.h
index 3706d2b..0cfd0e8 100644
--- a/include/trace/hooks/thermal.h
+++ b/include/trace/hooks/thermal.h
@@ -38,6 +38,10 @@
 	TP_PROTO(bool *enable, bool *override),
 	TP_ARGS(enable, override));
 
+DECLARE_HOOK(android_vh_modify_thermal_throttle_update,
+	TP_PROTO(struct thermal_zone_device *tz, bool *update),
+	TP_ARGS(tz, update));
+
 DECLARE_HOOK(android_vh_thermal_power_cap,
 	TP_PROTO(u32 *power_range),
 	TP_ARGS(power_range));
diff --git a/include/uapi/linux/android_fuse.h b/include/uapi/linux/android_fuse.h
new file mode 100644
index 0000000..221e30e
--- /dev/null
+++ b/include/uapi/linux/android_fuse.h
@@ -0,0 +1,97 @@
+/* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause WITH Linux-syscall-note */
+/* Copyright (c) 2022 Google LLC */
+
+#ifndef _LINUX_ANDROID_FUSE_H
+#define _LINUX_ANDROID_FUSE_H
+
+#ifdef __KERNEL__
+#include <linux/types.h>
+#else
+#include <stdint.h>
+#endif
+
+#define FUSE_ACTION_KEEP	0
+#define FUSE_ACTION_REMOVE	1
+#define FUSE_ACTION_REPLACE	2
+
+struct fuse_entry_bpf_out {
+	uint64_t	backing_action;
+	uint64_t	backing_fd;
+	uint64_t	bpf_action;
+	uint64_t	bpf_fd;
+};
+
+struct fuse_entry_bpf {
+	struct fuse_entry_bpf_out out;
+	struct file *backing_file;
+	struct file *bpf_file;
+};
+
+struct fuse_read_out {
+	uint64_t	offset;
+	uint32_t	again;
+	uint32_t	padding;
+};
+
+struct fuse_in_postfilter_header {
+	uint32_t	len;
+	uint32_t	opcode;
+	uint64_t	unique;
+	uint64_t	nodeid;
+	uint32_t	uid;
+	uint32_t	gid;
+	uint32_t	pid;
+	uint32_t	error_in;
+};
+
+/*
+ * Fuse BPF Args
+ *
+ * Used to communicate with bpf programs to allow checking or altering certain values.
+ * The end_offset allows the bpf verifier to check boundaries statically. This reflects
+ * the ends of the buffer. size shows the length that was actually used.
+ *
+ */
+
+/** One input argument of a request */
+struct fuse_bpf_in_arg {
+	uint32_t size;
+	const void *value;
+	const void *end_offset;
+};
+
+/** One output argument of a request */
+struct fuse_bpf_arg {
+	uint32_t size;
+	void *value;
+	void *end_offset;
+};
+
+#define FUSE_MAX_IN_ARGS 5
+#define FUSE_MAX_OUT_ARGS 3
+
+#define FUSE_BPF_FORCE (1 << 0)
+#define FUSE_BPF_OUT_ARGVAR (1 << 6)
+
+struct fuse_bpf_args {
+	uint64_t nodeid;
+	uint32_t opcode;
+	uint32_t error_in;
+	uint32_t in_numargs;
+	uint32_t out_numargs;
+	uint32_t flags;
+	struct fuse_bpf_in_arg in_args[FUSE_MAX_IN_ARGS];
+	struct fuse_bpf_arg out_args[FUSE_MAX_OUT_ARGS];
+};
+
+#define FUSE_BPF_USER_FILTER	1
+#define FUSE_BPF_BACKING	2
+#define FUSE_BPF_POST_FILTER	4
+
+#define FUSE_OPCODE_FILTER	0x0ffff
+#define FUSE_PREFILTER		0x10000
+#define FUSE_POSTFILTER		0x20000
+
+struct bpf_prog *fuse_get_bpf_prog(struct file *file);
+
+#endif  /* _LINUX_ANDROID_FUSE_H */
diff --git a/include/uapi/linux/bpf.h b/include/uapi/linux/bpf.h
index a887e58..d331249 100644
--- a/include/uapi/linux/bpf.h
+++ b/include/uapi/linux/bpf.h
@@ -949,6 +949,18 @@
 	BPF_PROG_TYPE_LSM,
 	BPF_PROG_TYPE_SK_LOOKUP,
 	BPF_PROG_TYPE_SYSCALL, /* a program that can execute syscalls */
+
+#ifndef __GENKSYMS__
+	/*
+	 * Until fuse-bpf is upstreamed, this value must be at the end to allow for
+	 * other recently-added upstreamed values to be correct.
+	 * This works because no one should use this value directly, rather they must
+	 * read the value from /sys/fs/fuse/bpf_prog_type_fuse
+	 * Please maintain this value at the end of the list until fuse-bpf is
+	 * upstreamed.
+	 */
+	BPF_PROG_TYPE_FUSE,
+#endif
 };
 
 enum bpf_attach_type {
diff --git a/include/uapi/linux/nl80211.h b/include/uapi/linux/nl80211.h
index fb18590..73fd223 100644
--- a/include/uapi/linux/nl80211.h
+++ b/include/uapi/linux/nl80211.h
@@ -1166,6 +1166,23 @@
  *	%NL80211_ATTR_STATUS_CODE attribute in %NL80211_CMD_EXTERNAL_AUTH
  *	command interface.
  *
+ *	Host driver sends MLD address of the AP with %NL80211_ATTR_MLD_ADDR in
+ *	%NL80211_CMD_EXTERNAL_AUTH event to indicate user space to enable MLO
+ *	during the authentication offload in STA mode while connecting to MLD
+ *	APs. Host driver should check %NL80211_ATTR_MLO_SUPPORT flag capability
+ *	in %NL80211_CMD_CONNECT to know whether the user space supports enabling
+ *	MLO during the authentication offload or not.
+ *	User space should enable MLO during the authentication only when it
+ *	receives the AP MLD address in authentication offload request. User
+ *	space shouldn't enable MLO when the authentication offload request
+ *	doesn't indicate the AP MLD address even if the AP is MLO capable.
+ *	User space should use %NL80211_ATTR_MLD_ADDR as peer's MLD address and
+ *	interface address identified by %NL80211_ATTR_IFINDEX as self MLD
+ *	address. User space and host driver to use MLD addresses in RA, TA and
+ *	BSSID fields of the frames between them, and host driver translates the
+ *	MLD addresses to/from link addresses based on the link chosen for the
+ *	authentication.
+ *
  *	Host driver reports this status on an authentication failure to the
  *	user space through the connect result as the user space would have
  *	initiated the connection through the connect request.
@@ -2755,6 +2772,14 @@
  *	When used with %NL80211_CMD_FRAME_TX_STATUS, indicates the ack RX
  *	timestamp. When used with %NL80211_CMD_FRAME RX notification, indicates
  *	the incoming frame RX timestamp.
+ * @NL80211_ATTR_TD_BITMAP: Transition Disable bitmap, for subsequent
+ *	(re)associations.
+ *
+ * @NL80211_ATTR_PUNCT_BITMAP: (u32) Preamble puncturing bitmap, lowest
+ *	bit corresponds to the lowest 20 MHz channel. Each bit set to 1
+ *	indicates that the sub-channel is punctured. Higher 16 bits are
+ *	reserved.
+ *
  * @NUM_NL80211_ATTR: total number of nl80211_attrs available
  * @NL80211_ATTR_MAX: highest attribute number currently defined
  * @__NL80211_ATTR_AFTER_LAST: internal use
@@ -3282,9 +3307,9 @@
 
 	NL80211_ATTR_TX_HW_TIMESTAMP,
 	NL80211_ATTR_RX_HW_TIMESTAMP,
+	NL80211_ATTR_TD_BITMAP,
+	NL80211_ATTR_PUNCT_BITMAP,
 
-	NL80211_ATTR_RESERVED_DO_NOT_USE_10 = 321,
-	NL80211_ATTR_RESERVED_DO_NOT_USE_11 = 322,
 	NL80211_ATTR_RESERVED_DO_NOT_USE_12 = 323,
 	NL80211_ATTR_RESERVED_DO_NOT_USE_13 = 324,
 	NL80211_ATTR_RESERVED_DO_NOT_USE_14 = 325,
@@ -5924,6 +5949,7 @@
 #define NL80211_KEK_LEN			16
 #define NL80211_KCK_EXT_LEN		24
 #define NL80211_KEK_EXT_LEN		32
+#define NL80211_KCK_EXT_LEN_32		32
 #define NL80211_REPLAY_CTR_LEN		8
 
 /**
@@ -6349,6 +6375,11 @@
  *	might apply, e.g. no scans in progress, no offchannel operations
  *	in progress, and no active connections.
  *
+ * @NL80211_EXT_FEATURE_PUNCT: Driver supports preamble puncturing in AP mode.
+ *
+ * @NL80211_EXT_FEATURE_SECURE_NAN: Device supports NAN Pairing which enables
+ *	authentication, data encryption and message integrity.
+ *
  * @NUM_NL80211_EXT_FEATURES: number of extended features.
  * @MAX_NL80211_EXT_FEATURES: highest extended feature index.
  */
@@ -6417,8 +6448,8 @@
 	NL80211_EXT_FEATURE_FILS_CRYPTO_OFFLOAD,
 	NL80211_EXT_FEATURE_RADAR_BACKGROUND,
 	NL80211_EXT_FEATURE_POWERED_ADDR_CHANGE,
-	NL80211_EXT_FEATURE_RESERVED_DO_NOT_USE_2 = 63,
-	NL80211_EXT_FEATURE_RESERVED_DO_NOT_USE_3 = 64,
+	NL80211_EXT_FEATURE_PUNCT,
+	NL80211_EXT_FEATURE_SECURE_NAN,
 	NL80211_EXT_FEATURE_RESERVED_DO_NOT_USE_4 = 65,
 	NL80211_EXT_FEATURE_RESERVED_DO_NOT_USE_5 = 66,
 	NL80211_EXT_FEATURE_RESERVED_DO_NOT_USE_6 = 67,
diff --git a/include/uapi/linux/usb/video.h b/include/uapi/linux/usb/video.h
index bfdae12..6e8e572 100644
--- a/include/uapi/linux/usb/video.h
+++ b/include/uapi/linux/usb/video.h
@@ -466,7 +466,7 @@
 	__u8  bDefaultFrameIndex;
 	__u8  bAspectRatioX;
 	__u8  bAspectRatioY;
-	__u8  bmInterfaceFlags;
+	__u8  bmInterlaceFlags;
 	__u8  bCopyProtect;
 } __attribute__((__packed__));
 
@@ -522,7 +522,7 @@
 	__u8  bDefaultFrameIndex;
 	__u8  bAspectRatioX;
 	__u8  bAspectRatioY;
-	__u8  bmInterfaceFlags;
+	__u8  bmInterlaceFlags;
 	__u8  bCopyProtect;
 } __attribute__((__packed__));
 
diff --git a/kernel/bpf/Makefile b/kernel/bpf/Makefile
index 7f33098..0115967 100644
--- a/kernel/bpf/Makefile
+++ b/kernel/bpf/Makefile
@@ -36,3 +36,6 @@
 obj-${CONFIG_BPF_LSM} += bpf_lsm.o
 endif
 obj-$(CONFIG_BPF_PRELOAD) += preload/
+ifeq ($(CONFIG_FUSE_BPF),y)
+obj-$(CONFIG_BPF_SYSCALL) += bpf_fuse.o
+endif
diff --git a/kernel/bpf/bpf_fuse.c b/kernel/bpf/bpf_fuse.c
new file mode 100644
index 0000000..c6aa670b
--- /dev/null
+++ b/kernel/bpf/bpf_fuse.c
@@ -0,0 +1,128 @@
+// SPDX-License-Identifier: GPL-2.0
+// Copyright (c) 2021 Google LLC
+
+#include <linux/filter.h>
+#include <linux/android_fuse.h>
+
+static const struct bpf_func_proto *
+fuse_prog_func_proto(enum bpf_func_id func_id, const struct bpf_prog *prog)
+{
+	switch (func_id) {
+	case BPF_FUNC_trace_printk:
+			return bpf_get_trace_printk_proto();
+
+	case BPF_FUNC_get_current_uid_gid:
+			return &bpf_get_current_uid_gid_proto;
+
+	case BPF_FUNC_get_current_pid_tgid:
+			return &bpf_get_current_pid_tgid_proto;
+
+	case BPF_FUNC_map_lookup_elem:
+		return &bpf_map_lookup_elem_proto;
+
+	case BPF_FUNC_map_update_elem:
+		return &bpf_map_update_elem_proto;
+
+	default:
+		pr_debug("Invalid fuse bpf func %d\n", func_id);
+		return NULL;
+	}
+}
+
+static bool fuse_prog_is_valid_access(int off, int size,
+				enum bpf_access_type type,
+				const struct bpf_prog *prog,
+				struct bpf_insn_access_aux *info)
+{
+	int i;
+
+	if (off < 0 || off > offsetofend(struct fuse_bpf_args, out_args))
+		return false;
+
+	/* TODO This is garbage. Do it properly */
+	for (i = 0; i < 5; i++) {
+		if (off == offsetof(struct fuse_bpf_args, in_args[i].value)) {
+			info->reg_type = PTR_TO_BUF;
+			info->ctx_field_size = 256;
+			if (type != BPF_READ)
+				return false;
+			return true;
+		}
+	}
+	for (i = 0; i < 3; i++) {
+		if (off == offsetof(struct fuse_bpf_args, out_args[i].value)) {
+			info->reg_type = PTR_TO_BUF;
+			info->ctx_field_size = 256;
+			return true;
+		}
+	}
+	if (type != BPF_READ)
+		return false;
+
+	return true;
+}
+
+const struct bpf_verifier_ops fuse_verifier_ops = {
+	.get_func_proto  = fuse_prog_func_proto,
+	.is_valid_access = fuse_prog_is_valid_access,
+};
+
+const struct bpf_prog_ops fuse_prog_ops = {
+};
+
+struct bpf_prog *fuse_get_bpf_prog(struct file *file)
+{
+	struct bpf_prog *bpf_prog = ERR_PTR(-EINVAL);
+
+	if (!file || IS_ERR(file))
+		return bpf_prog;
+	/**
+	 * Two ways of getting a bpf prog from another task's fd, since
+	 * bpf_prog_get_type_dev only works with an fd
+	 *
+	 * 1) Duplicate a little of the needed code. Requires access to
+	 *    bpf_prog_fops for validation, which is not exported for modules
+	 * 2) Insert the bpf_file object into a fd from the current task
+	 *    Stupidly complex, but I think OK, as security checks are not run
+	 *    during the existence of the handle
+	 *
+	 * Best would be to upstream 1) into kernel/bpf/syscall.c and export it
+	 * for use here. Failing that, we have to use 2, since fuse must be
+	 * compilable as a module.
+	 */
+#if 1
+	if (file->f_op != &bpf_prog_fops)
+		goto out;
+
+	bpf_prog = file->private_data;
+	if (bpf_prog->type == BPF_PROG_TYPE_FUSE)
+		bpf_prog_inc(bpf_prog);
+	else
+		bpf_prog = ERR_PTR(-EINVAL);
+
+#else
+	{
+		int task_fd = get_unused_fd_flags(file->f_flags);
+
+		if (task_fd < 0)
+			goto out;
+
+		fd_install(task_fd, file);
+
+		bpf_prog = bpf_prog_get_type_dev(task_fd, BPF_PROG_TYPE_FUSE,
+						 false);
+
+		/* Close the fd, which also closes the file */
+		__close_fd(current->files, task_fd);
+		file = NULL;
+	}
+#endif
+
+out:
+	if (file)
+		fput(file);
+	return bpf_prog;
+}
+EXPORT_SYMBOL(fuse_get_bpf_prog);
+
+
diff --git a/kernel/bpf/btf.c b/kernel/bpf/btf.c
index 7f031f7..9e8a28e4 100644
--- a/kernel/bpf/btf.c
+++ b/kernel/bpf/btf.c
@@ -3,6 +3,7 @@
 
 #include <uapi/linux/btf.h>
 #include <uapi/linux/bpf.h>
+#include <uapi/linux/android_fuse.h>
 #include <uapi/linux/bpf_perf_event.h>
 #include <uapi/linux/types.h>
 #include <linux/seq_file.h>
diff --git a/kernel/cgroup/cpuset.c b/kernel/cgroup/cpuset.c
index 34fe975..8dbb54c1 100644
--- a/kernel/cgroup/cpuset.c
+++ b/kernel/cgroup/cpuset.c
@@ -3395,15 +3395,38 @@
  * Description: Returns the cpumask_var_t cpus_allowed of the cpuset
  * attached to the specified @tsk.  Guaranteed to return some non-empty
  * subset of cpu_online_mask, even if this means going outside the
- * tasks cpuset.
+ * tasks cpuset, except when the task is in the top cpuset.
  **/
 
 void cpuset_cpus_allowed(struct task_struct *tsk, struct cpumask *pmask)
 {
 	unsigned long flags;
+	struct cpuset *cs;
 
 	spin_lock_irqsave(&callback_lock, flags);
-	guarantee_online_cpus(tsk, pmask);
+	rcu_read_lock();
+
+	cs = task_cs(tsk);
+	if (cs != &top_cpuset)
+		guarantee_online_cpus(tsk, pmask);
+	/*
+	 * Tasks in the top cpuset won't get update to their cpumasks
+	 * when a hotplug online/offline event happens. So we include all
+	 * offline cpus in the allowed cpu list.
+	 */
+	if ((cs == &top_cpuset) || cpumask_empty(pmask)) {
+		const struct cpumask *possible_mask = task_cpu_possible_mask(tsk);
+
+		/*
+		 * We first exclude cpus allocated to partitions. If there is no
+		 * allowable online cpu left, we fall back to all possible cpus.
+		 */
+		cpumask_andnot(pmask, possible_mask, top_cpuset.subparts_cpus);
+		if (!cpumask_intersects(pmask, cpu_online_mask))
+			cpumask_copy(pmask, possible_mask);
+	}
+
+	rcu_read_unlock();
 	spin_unlock_irqrestore(&callback_lock, flags);
 }
 EXPORT_SYMBOL_GPL(cpuset_cpus_allowed);
diff --git a/kernel/locking/mutex.c b/kernel/locking/mutex.c
index 4c2fb29..caf2e4e 100644
--- a/kernel/locking/mutex.c
+++ b/kernel/locking/mutex.c
@@ -355,9 +355,16 @@
 			 struct ww_acquire_ctx *ww_ctx, struct mutex_waiter *waiter)
 {
 	bool ret = true;
+	int cnt = 0;
+	bool time_out = false;
 
 	rcu_read_lock();
 	while (__mutex_owner(lock) == owner) {
+		trace_android_vh_mutex_opt_spin_start(lock, &time_out, &cnt);
+		if (time_out) {
+			ret = false;
+			break;
+		}
 		/*
 		 * Ensure we emit the owner->on_cpu, dereference _after_
 		 * checking lock->owner still matches owner. If that fails,
@@ -408,6 +415,7 @@
 	if (owner)
 		retval = owner->on_cpu && !vcpu_is_preempted(task_cpu(owner));
 	rcu_read_unlock();
+	trace_android_vh_mutex_can_spin_on_owner(lock, &retval);
 
 	/*
 	 * If lock->owner is not set, the mutex has been released. Return true
@@ -489,6 +497,7 @@
 	if (!waiter)
 		osq_unlock(&lock->osq);
 
+	trace_android_vh_mutex_opt_spin_finish(lock, true);
 	return true;
 
 
@@ -497,6 +506,7 @@
 		osq_unlock(&lock->osq);
 
 fail:
+	trace_android_vh_mutex_opt_spin_finish(lock, false);
 	/*
 	 * If we fell out of the spin path because of need_resched(),
 	 * reschedule now, before we try-lock the mutex. This avoids getting
diff --git a/kernel/locking/rwsem.c b/kernel/locking/rwsem.c
index 80e74cd..d52f8f9 100644
--- a/kernel/locking/rwsem.c
+++ b/kernel/locking/rwsem.c
@@ -249,6 +249,7 @@
 
 	if (!(*cntp & RWSEM_READ_FAILED_MASK)) {
 		rwsem_set_reader_owned(sem);
+		trace_android_vh_record_rwsem_lock_starttime(current, jiffies);
 		return true;
 	}
 
@@ -706,6 +707,7 @@
 		ret = false;
 	rcu_read_unlock();
 	preempt_enable();
+	trace_android_vh_rwsem_can_spin_on_owner(sem, &ret);
 
 	lockevent_cond_inc(rwsem_opt_fail, !ret);
 	return ret;
@@ -731,6 +733,8 @@
 	struct task_struct *new, *owner;
 	unsigned long flags, new_flags;
 	enum owner_state state;
+	int cnt = 0;
+	bool time_out = false;
 
 	owner = rwsem_owner_flags(sem, &flags);
 	state = rwsem_owner_state(owner, flags);
@@ -739,6 +743,9 @@
 
 	rcu_read_lock();
 	for (;;) {
+		trace_android_vh_rwsem_opt_spin_start(sem, &time_out, &cnt, true);
+		if (time_out)
+			break;
 		/*
 		 * When a waiting writer set the handoff flag, it may spin
 		 * on the owner as well. Once that writer acquires the lock,
@@ -802,6 +809,8 @@
 	int prev_owner_state = OWNER_NULL;
 	int loop = 0;
 	u64 rspin_threshold = 0;
+	int cnt = 0;
+	bool time_out = false;
 
 	preempt_disable();
 
@@ -818,6 +827,9 @@
 	for (;;) {
 		enum owner_state owner_state;
 
+		trace_android_vh_rwsem_opt_spin_start(sem, &time_out, &cnt, false);
+		if (time_out)
+			break;
 		owner_state = rwsem_spin_on_owner(sem);
 		if (!(owner_state & OWNER_SPINNABLE))
 			break;
@@ -911,6 +923,7 @@
 		cpu_relax();
 	}
 	osq_unlock(&sem->osq);
+	trace_android_vh_rwsem_opt_spin_finish(sem, taken);
 done:
 	preempt_enable();
 	lockevent_cond_inc(rwsem_opt_fail, !taken);
@@ -1326,7 +1339,6 @@
 			return -EINTR;
 	}
 
-	trace_android_vh_record_rwsem_lock_starttime(current, jiffies);
 	return 0;
 }
 
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
index 5df3cc3..481090c 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -58,9 +58,6 @@
 DEFINE_PER_CPU_SHARED_ALIGNED(struct rq, runqueues);
 EXPORT_SYMBOL_GPL(runqueues);
 
-/* Scratch cpumask to be temporarily used under rq_lock */
-DEFINE_PER_CPU(cpumask_var_t, scratch_mask);
-
 #ifdef CONFIG_SCHED_DEBUG
 /*
  * Debugging: various feature bits
@@ -2155,18 +2152,14 @@
 #ifdef CONFIG_SMP
 
 static void
-__do_set_cpus_allowed(struct task_struct *p, struct affinity_context *ctx);
+__do_set_cpus_allowed(struct task_struct *p, const struct cpumask *new_mask, u32 flags);
 
 static int __set_cpus_allowed_ptr(struct task_struct *p,
-				  struct affinity_context *ctx);
+				  const struct cpumask *new_mask,
+				  u32 flags);
 
 static void migrate_disable_switch(struct rq *rq, struct task_struct *p)
 {
-	struct affinity_context ac = {
-		.new_mask  = cpumask_of(rq->cpu),
-		.flags     = SCA_MIGRATE_DISABLE,
-	};
-
 	if (likely(!p->migration_disabled))
 		return;
 
@@ -2176,7 +2169,7 @@
 	/*
 	 * Violates locking rules! see comment in __do_set_cpus_allowed().
 	 */
-	__do_set_cpus_allowed(p, &ac);
+	__do_set_cpus_allowed(p, cpumask_of(rq->cpu), SCA_MIGRATE_DISABLE);
 }
 
 void migrate_disable(void)
@@ -2198,10 +2191,6 @@
 void migrate_enable(void)
 {
 	struct task_struct *p = current;
-	struct affinity_context ac = {
-		.new_mask  = &p->cpus_mask,
-		.flags     = SCA_MIGRATE_ENABLE,
-	};
 
 	if (p->migration_disabled > 1) {
 		p->migration_disabled--;
@@ -2214,7 +2203,7 @@
 	 */
 	preempt_disable();
 	if (p->cpus_ptr != &p->cpus_mask)
-		__set_cpus_allowed_ptr(p, &ac);
+		__set_cpus_allowed_ptr(p, &p->cpus_mask, SCA_MIGRATE_ENABLE);
 	/*
 	 * Mustn't clear migration_disabled() until cpus_ptr points back at the
 	 * regular cpus_mask, otherwise things that race (eg.
@@ -2515,27 +2504,20 @@
  * sched_class::set_cpus_allowed must do the below, but is not required to
  * actually call this function.
  */
-void set_cpus_allowed_common(struct task_struct *p, struct affinity_context *ctx)
+void set_cpus_allowed_common(struct task_struct *p, const struct cpumask *new_mask, u32 flags)
 {
-	if (ctx->flags & (SCA_MIGRATE_ENABLE | SCA_MIGRATE_DISABLE)) {
-		p->cpus_ptr = ctx->new_mask;
+	if (flags & (SCA_MIGRATE_ENABLE | SCA_MIGRATE_DISABLE)) {
+		p->cpus_ptr = new_mask;
 		return;
 	}
 
-	cpumask_copy(&p->cpus_mask, ctx->new_mask);
-	p->nr_cpus_allowed = cpumask_weight(ctx->new_mask);
-
-	/*
-	 * Swap in a new user_cpus_ptr if SCA_USER flag set
-	 */
-	if (ctx->flags & SCA_USER)
-		swap(p->user_cpus_ptr, ctx->user_mask);
-
-	trace_android_rvh_set_cpus_allowed_comm(p, ctx->new_mask);
+	cpumask_copy(&p->cpus_mask, new_mask);
+	p->nr_cpus_allowed = cpumask_weight(new_mask);
+	trace_android_rvh_set_cpus_allowed_comm(p, new_mask);
 }
 
 static void
-__do_set_cpus_allowed(struct task_struct *p, struct affinity_context *ctx)
+__do_set_cpus_allowed(struct task_struct *p, const struct cpumask *new_mask, u32 flags)
 {
 	struct rq *rq = task_rq(p);
 	bool queued, running;
@@ -2552,7 +2534,7 @@
 	 *
 	 * XXX do further audits, this smells like something putrid.
 	 */
-	if (ctx->flags & SCA_MIGRATE_DISABLE)
+	if (flags & SCA_MIGRATE_DISABLE)
 		SCHED_WARN_ON(!p->on_cpu);
 	else
 		lockdep_assert_held(&p->pi_lock);
@@ -2571,18 +2553,7 @@
 	if (running)
 		put_prev_task(rq, p);
 
-	/*
-	 * XXX: ANDROID: we can't use sched_class::set_cpus_allowed() here
-	 * because it doesn't take a struct affinity_context as parameter for
-	 * GKI KMI stability reason -- see b/254812379. To avoid the problem,
-	 * let's hardcode the indirection here and hope for the best. The only
-	 * other potential users of p->set_cpus_allowed() will be in vendor
-	 * modules.
-	 */
-	if (likely(p->sched_class != &dl_sched_class))
-		set_cpus_allowed_common(p, ctx);
-	else
-		set_cpus_allowed_dl(p, ctx);
+	p->sched_class->set_cpus_allowed(p, new_mask, flags);
 
 	if (queued)
 		enqueue_task(rq, p, ENQUEUE_RESTORE | ENQUEUE_NOCLOCK);
@@ -2590,20 +2561,9 @@
 		set_next_task(rq, p);
 }
 
-/*
- * Used for kthread_bind() and select_fallback_rq(), in both cases the user
- * affinity (if any) should be destroyed too.
- */
 void do_set_cpus_allowed(struct task_struct *p, const struct cpumask *new_mask)
 {
-	struct affinity_context ac = {
-		.new_mask  = new_mask,
-		.user_mask = NULL,
-		.flags     = SCA_USER,	/* clear the user requested mask */
-	};
-
-	__do_set_cpus_allowed(p, &ac);
-	kfree(ac.user_mask);
+	__do_set_cpus_allowed(p, new_mask, 0);
 }
 
 int dup_user_cpus_ptr(struct task_struct *dst, struct task_struct *src,
@@ -2741,8 +2701,6 @@
  */
 static int affine_move_task(struct rq *rq, struct task_struct *p, struct rq_flags *rf,
 			    int dest_cpu, unsigned int flags)
-	__releases(rq->lock)
-	__releases(p->pi_lock)
 {
 	struct set_affinity_pending my_pending = { }, *pending = NULL;
 	bool stop_pending, complete = false;
@@ -2885,7 +2843,8 @@
  * Called with both p->pi_lock and rq->lock held; drops both before returning.
  */
 static int __set_cpus_allowed_ptr_locked(struct task_struct *p,
-					 struct affinity_context *ctx,
+					 const struct cpumask *new_mask,
+					 u32 flags,
 					 struct rq *rq,
 					 struct rq_flags *rf)
 	__releases(rq->lock)
@@ -2894,6 +2853,7 @@
 	const struct cpumask *cpu_allowed_mask = task_cpu_possible_mask(p);
 	const struct cpumask *cpu_valid_mask = cpu_active_mask;
 	bool kthread = p->flags & PF_KTHREAD;
+	struct cpumask *user_mask = NULL;
 	unsigned int dest_cpu;
 	int ret = 0;
 
@@ -2913,7 +2873,7 @@
 		cpu_valid_mask = cpu_online_mask;
 	}
 
-	if (!kthread && !cpumask_subset(ctx->new_mask, cpu_allowed_mask)) {
+	if (!kthread && !cpumask_subset(new_mask, cpu_allowed_mask)) {
 		ret = -EINVAL;
 		goto out;
 	}
@@ -2922,18 +2882,18 @@
 	 * Must re-check here, to close a race against __kthread_bind(),
 	 * sched_setaffinity() is not guaranteed to observe the flag.
 	 */
-	if ((ctx->flags & SCA_CHECK) && (p->flags & PF_NO_SETAFFINITY)) {
+	if ((flags & SCA_CHECK) && (p->flags & PF_NO_SETAFFINITY)) {
 		ret = -EINVAL;
 		goto out;
 	}
 
-	if (!(ctx->flags & SCA_MIGRATE_ENABLE)) {
-		if (cpumask_equal(&p->cpus_mask, ctx->new_mask))
+	if (!(flags & SCA_MIGRATE_ENABLE)) {
+		if (cpumask_equal(&p->cpus_mask, new_mask))
 			goto out;
 
 		if (WARN_ON_ONCE(p == current &&
 				 is_migration_disabled(p) &&
-				 !cpumask_test_cpu(task_cpu(p), ctx->new_mask))) {
+				 !cpumask_test_cpu(task_cpu(p), new_mask))) {
 			ret = -EBUSY;
 			goto out;
 		}
@@ -2944,18 +2904,25 @@
 	 * for groups of tasks (ie. cpuset), so that load balancing is not
 	 * immediately required to distribute the tasks within their new mask.
 	 */
-	dest_cpu = cpumask_any_and_distribute(cpu_valid_mask, ctx->new_mask);
-	trace_android_rvh_set_cpus_allowed_ptr_locked(cpu_valid_mask, ctx->new_mask, &dest_cpu);
-	trace_android_rvh_set_cpus_allowed_by_task(cpu_valid_mask, ctx->new_mask, p, &dest_cpu);
+	dest_cpu = cpumask_any_and_distribute(cpu_valid_mask, new_mask);
+	trace_android_rvh_set_cpus_allowed_ptr_locked(cpu_valid_mask, new_mask, &dest_cpu);
+	trace_android_rvh_set_cpus_allowed_by_task(cpu_valid_mask, new_mask, p, &dest_cpu);
 
 	if (dest_cpu >= nr_cpu_ids) {
 		ret = -EINVAL;
 		goto out;
 	}
 
-	__do_set_cpus_allowed(p, ctx);
+	__do_set_cpus_allowed(p, new_mask, flags);
 
-	return affine_move_task(rq, p, rf, dest_cpu, ctx->flags);
+	if (flags & SCA_USER)
+		user_mask = clear_user_cpus_ptr(p);
+
+	ret = affine_move_task(rq, p, rf, dest_cpu, flags);
+
+	kfree(user_mask);
+
+	return ret;
 
 out:
 	task_rq_unlock(rq, p, rf);
@@ -2973,43 +2940,25 @@
  * call is not atomic; no spinlocks may be held.
  */
 static int __set_cpus_allowed_ptr(struct task_struct *p,
-				  struct affinity_context *ctx)
+				  const struct cpumask *new_mask, u32 flags)
 {
-	struct cpumask *cpus;
 	struct rq_flags rf;
 	struct rq *rq;
 
 	rq = task_rq_lock(p, &rf);
-	cpus = per_cpu(scratch_mask, rq->cpu);
-	/*
-	 * Masking should be skipped if SCA_USER or any of the SCA_MIGRATE_*
-	 * flags are set.
-	 */
-	if (p->user_cpus_ptr &&
-	    !(ctx->flags & (SCA_USER | SCA_MIGRATE_ENABLE | SCA_MIGRATE_DISABLE)) &&
-	    cpumask_and(cpus, ctx->new_mask, p->user_cpus_ptr))
-		ctx->new_mask = cpus;
-
-	return __set_cpus_allowed_ptr_locked(p, ctx, rq, &rf);
+	return __set_cpus_allowed_ptr_locked(p, new_mask, flags, rq, &rf);
 }
 
 int set_cpus_allowed_ptr(struct task_struct *p, const struct cpumask *new_mask)
 {
-	struct affinity_context ac = {
-		.new_mask  = new_mask,
-		.flags     = 0,
-	};
-
-	return __set_cpus_allowed_ptr(p, &ac);
+	return __set_cpus_allowed_ptr(p, new_mask, 0);
 }
 EXPORT_SYMBOL_GPL(set_cpus_allowed_ptr);
 
 /*
  * Change a given task's CPU affinity to the intersection of its current
- * affinity mask and @subset_mask, writing the resulting mask to @new_mask.
- * If user_cpus_ptr is defined, use it as the basis for restricting CPU
- * affinity or use cpu_online_mask instead.
- *
+ * affinity mask and @subset_mask, writing the resulting mask to @new_mask
+ * and pointing @p->user_cpus_ptr to a copy of the old mask.
  * If the resulting mask is empty, leave the affinity unchanged and return
  * -EINVAL.
  */
@@ -3017,14 +2966,17 @@
 				     struct cpumask *new_mask,
 				     const struct cpumask *subset_mask)
 {
-	struct affinity_context ac = {
-		.new_mask  = new_mask,
-		.flags     = 0,
-	};
+	struct cpumask *user_mask = NULL;
 	struct rq_flags rf;
 	struct rq *rq;
 	int err;
 
+	if (!p->user_cpus_ptr) {
+		user_mask = kmalloc(cpumask_size(), GFP_KERNEL);
+		if (!user_mask)
+			return -ENOMEM;
+	}
+
 	rq = task_rq_lock(p, &rf);
 
 	/*
@@ -3037,21 +2989,31 @@
 		goto err_unlock;
 	}
 
-	if (!cpumask_and(new_mask, task_user_cpus(p), subset_mask)) {
+	if (!cpumask_and(new_mask, &p->cpus_mask, subset_mask)) {
 		err = -EINVAL;
 		goto err_unlock;
 	}
 
-	return __set_cpus_allowed_ptr_locked(p, &ac, rq, &rf);
+	/*
+	 * We're about to butcher the task affinity, so keep track of what
+	 * the user asked for in case we're able to restore it later on.
+	 */
+	if (user_mask) {
+		cpumask_copy(user_mask, p->cpus_ptr);
+		p->user_cpus_ptr = user_mask;
+	}
+
+	return __set_cpus_allowed_ptr_locked(p, new_mask, 0, rq, &rf);
 
 err_unlock:
 	task_rq_unlock(rq, p, &rf);
+	kfree(user_mask);
 	return err;
 }
 
 /*
  * Restrict the CPU affinity of task @p so that it is a subset of
- * task_cpu_possible_mask() and point @p->user_cpus_ptr to a copy of the
+ * task_cpu_possible_mask() and point @p->user_cpu_ptr to a copy of the
  * old affinity mask. If the resulting mask is empty, we warn and walk
  * up the cpuset hierarchy until we find a suitable mask.
  */
@@ -3097,29 +3059,34 @@
 }
 
 static int
-__sched_setaffinity(struct task_struct *p, struct affinity_context *ctx);
+__sched_setaffinity(struct task_struct *p, const struct cpumask *mask);
 
 /*
  * Restore the affinity of a task @p which was previously restricted by a
- * call to force_compatible_cpus_allowed_ptr().
+ * call to force_compatible_cpus_allowed_ptr(). This will clear (and free)
+ * @p->user_cpus_ptr.
  *
  * It is the caller's responsibility to serialise this with any calls to
  * force_compatible_cpus_allowed_ptr(@p).
  */
 void relax_compatible_cpus_allowed_ptr(struct task_struct *p)
 {
-	struct affinity_context ac = {
-		.new_mask  = task_user_cpus(p),
-		.flags     = 0,
-	};
-	int ret;
+	struct cpumask *user_mask = p->user_cpus_ptr;
+	unsigned long flags;
 
 	/*
-	 * Try to restore the old affinity mask with __sched_setaffinity().
-	 * Cpuset masking will be done there too.
+	 * Try to restore the old affinity mask. If this fails, then
+	 * we free the mask explicitly to avoid it being inherited across
+	 * a subsequent fork().
 	 */
-	ret = __sched_setaffinity(p, &ac);
-	WARN_ON_ONCE(ret);
+	if (!user_mask || !__sched_setaffinity(p, user_mask))
+		return;
+
+	raw_spin_lock_irqsave(&p->pi_lock, flags);
+	user_mask = clear_user_cpus_ptr(p);
+	raw_spin_unlock_irqrestore(&p->pi_lock, flags);
+
+	kfree(user_mask);
 }
 
 void set_task_cpu(struct task_struct *p, unsigned int new_cpu)
@@ -3603,9 +3570,10 @@
 #else /* CONFIG_SMP */
 
 static inline int __set_cpus_allowed_ptr(struct task_struct *p,
-					 struct affinity_context *ctx)
+					 const struct cpumask *new_mask,
+					 u32 flags)
 {
-	return set_cpus_allowed_ptr(p, ctx->new_mask);
+	return set_cpus_allowed_ptr(p, new_mask);
 }
 
 static inline void migrate_disable_switch(struct rq *rq, struct task_struct *p) { }
@@ -8184,7 +8152,7 @@
 #endif
 
 static int
-__sched_setaffinity(struct task_struct *p, struct affinity_context *ctx)
+__sched_setaffinity(struct task_struct *p, const struct cpumask *mask)
 {
 	int retval;
 	cpumask_var_t cpus_allowed, new_mask;
@@ -8198,16 +8166,13 @@
 	}
 
 	cpuset_cpus_allowed(p, cpus_allowed);
-	cpumask_and(new_mask, ctx->new_mask, cpus_allowed);
-
-	ctx->new_mask = new_mask;
-	ctx->flags |= SCA_CHECK;
+	cpumask_and(new_mask, mask, cpus_allowed);
 
 	retval = dl_task_check_affinity(p, new_mask);
 	if (retval)
 		goto out_free_new_mask;
-
-	retval = __set_cpus_allowed_ptr(p, ctx);
+again:
+	retval = __set_cpus_allowed_ptr(p, new_mask, SCA_CHECK | SCA_USER);
 	if (retval)
 		goto out_free_new_mask;
 
@@ -8218,24 +8183,7 @@
 		 * Just reset the cpumask to the cpuset's cpus_allowed.
 		 */
 		cpumask_copy(new_mask, cpus_allowed);
-
-		/*
-		 * If SCA_USER is set, a 2nd call to __set_cpus_allowed_ptr()
-		 * will restore the previous user_cpus_ptr value.
-		 *
-		 * In the unlikely event a previous user_cpus_ptr exists,
-		 * we need to further restrict the mask to what is allowed
-		 * by that old user_cpus_ptr.
-		 */
-		if (unlikely((ctx->flags & SCA_USER) && ctx->user_mask)) {
-			bool empty = !cpumask_and(new_mask, new_mask,
-						  ctx->user_mask);
-
-			if (WARN_ON_ONCE(empty))
-				cpumask_copy(new_mask, cpus_allowed);
-		}
-		__set_cpus_allowed_ptr(p, ctx);
-		retval = -EINVAL;
+		goto again;
 	}
 
 out_free_new_mask:
@@ -8247,8 +8195,6 @@
 
 long sched_setaffinity(pid_t pid, const struct cpumask *in_mask)
 {
-	struct affinity_context ac;
-	struct cpumask *user_mask;
 	struct task_struct *p;
 	int retval = 0;
 	int skip = 0;
@@ -8287,21 +8233,8 @@
 	if (retval)
 		goto out_put_task;
 
-	user_mask = kmalloc(cpumask_size(), GFP_KERNEL);
-	if (!user_mask) {
-		retval = -ENOMEM;
-		goto out_put_task;
-	}
-	cpumask_copy(user_mask, in_mask);
-	ac = (struct affinity_context){
-		.new_mask  = in_mask,
-		.user_mask = user_mask,
-		.flags     = SCA_USER,
-	};
-
-	retval = __sched_setaffinity(p, &ac);
-	trace_android_rvh_sched_setaffinity(p, ac.new_mask, &retval);
-	kfree(ac.user_mask);
+	retval = __sched_setaffinity(p, in_mask);
+	trace_android_rvh_sched_setaffinity(p, in_mask, &retval);
 
 out_put_task:
 	put_task_struct(p);
@@ -8904,12 +8837,6 @@
  */
 void __init init_idle(struct task_struct *idle, int cpu)
 {
-#ifdef CONFIG_SMP
-	struct affinity_context ac = (struct affinity_context) {
-		.new_mask  = cpumask_of(cpu),
-		.flags     = 0,
-	};
-#endif
 	struct rq *rq = cpu_rq(cpu);
 	unsigned long flags;
 
@@ -8942,7 +8869,7 @@
 	 *
 	 * And since this is boot we can forgo the serialization.
 	 */
-	set_cpus_allowed_common(idle, &ac);
+	set_cpus_allowed_common(idle, cpumask_of(cpu), 0);
 #endif
 	/*
 	 * We're having a chicken and egg problem, even though we are
@@ -9654,8 +9581,6 @@
 			cpumask_size(), GFP_KERNEL, cpu_to_node(i));
 		per_cpu(select_idle_mask, i) = (cpumask_var_t)kzalloc_node(
 			cpumask_size(), GFP_KERNEL, cpu_to_node(i));
-		per_cpu(scratch_mask, i) = (cpumask_var_t)kzalloc_node(
-			cpumask_size(), GFP_KERNEL, cpu_to_node(i));
 	}
 #endif /* CONFIG_CPUMASK_OFFSTACK */
 
diff --git a/kernel/sched/cpupri.c b/kernel/sched/cpupri.c
index 6f5fd1d..a4a0c21 100644
--- a/kernel/sched/cpupri.c
+++ b/kernel/sched/cpupri.c
@@ -366,6 +366,7 @@
 {
 	int cpu = raw_smp_processor_id();
 
-	return cpu_rq(cpu)->rd->cpupri.cpu_to_pri[cpu] > CPUPRI_NORMAL;
+	return (cpu_rq(cpu)->rd->cpupri.cpu_to_pri[cpu] > CPUPRI_NORMAL) &&
+	       (cpu_rq(cpu)->rt.rt_throttled == 0);
 }
 #endif
diff --git a/kernel/sched/deadline.c b/kernel/sched/deadline.c
index ce4b858..16a8c78 100644
--- a/kernel/sched/deadline.c
+++ b/kernel/sched/deadline.c
@@ -2341,7 +2341,9 @@
 	}
 }
 
-void set_cpus_allowed_dl(struct task_struct *p, struct affinity_context *ctx)
+static void set_cpus_allowed_dl(struct task_struct *p,
+				const struct cpumask *new_mask,
+				u32 flags)
 {
 	struct root_domain *src_rd;
 	struct rq *rq;
@@ -2356,7 +2358,7 @@
 	 * update. We already made space for us in the destination
 	 * domain (see cpuset_can_attach()).
 	 */
-	if (!cpumask_intersects(src_rd->span, ctx->new_mask)) {
+	if (!cpumask_intersects(src_rd->span, new_mask)) {
 		struct dl_bw *src_dl_b;
 
 		src_dl_b = dl_bw_of(cpu_of(rq));
@@ -2370,19 +2372,7 @@
 		raw_spin_unlock(&src_dl_b->lock);
 	}
 
-	set_cpus_allowed_common(p, ctx);
-}
-
-static void set_cpus_allowed_dl_cb(struct task_struct *p,
-				   const struct cpumask *new_mask,
-				   u32 flags)
-{
-	struct affinity_context ac = {
-		.new_mask  = new_mask,
-		.flags     = flags,
-	};
-	WARN_ONCE(1, "Unexpected use of dl_sched_class::set_cpus_allowed()");
-	set_cpus_allowed_dl(p, &ac);
+	set_cpus_allowed_common(p, new_mask, flags);
 }
 
 /* Assumes rq->lock is held */
@@ -2577,7 +2567,7 @@
 	.pick_task		= pick_task_dl,
 	.select_task_rq		= select_task_rq_dl,
 	.migrate_task_rq	= migrate_task_rq_dl,
-	.set_cpus_allowed       = set_cpus_allowed_dl_cb,
+	.set_cpus_allowed       = set_cpus_allowed_dl,
 	.rq_online              = rq_online_dl,
 	.rq_offline             = rq_offline_dl,
 	.task_woken		= task_woken_dl,
diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
index 550dd20..71bce8f 100644
--- a/kernel/sched/fair.c
+++ b/kernel/sched/fair.c
@@ -11974,7 +11974,7 @@
 	.rq_offline		= rq_offline_fair,
 
 	.task_dead		= task_dead_fair,
-	.set_cpus_allowed	= set_cpus_allowed_common_cb,
+	.set_cpus_allowed	= set_cpus_allowed_common,
 #endif
 
 	.task_tick		= task_tick_fair,
diff --git a/kernel/sched/idle.c b/kernel/sched/idle.c
index 317d585..499a3e2 100644
--- a/kernel/sched/idle.c
+++ b/kernel/sched/idle.c
@@ -516,7 +516,7 @@
 	.balance		= balance_idle,
 	.pick_task		= pick_task_idle,
 	.select_task_rq		= select_task_rq_idle,
-	.set_cpus_allowed	= set_cpus_allowed_common_cb,
+	.set_cpus_allowed	= set_cpus_allowed_common,
 #endif
 
 	.task_tick		= task_tick_idle,
diff --git a/kernel/sched/psi.c b/kernel/sched/psi.c
index 41dc5e5fe..15c79a9 100644
--- a/kernel/sched/psi.c
+++ b/kernel/sched/psi.c
@@ -151,6 +151,8 @@
 #include <linux/psi.h>
 #include "sched.h"
 
+#include <trace/hooks/psi.h>
+
 static int psi_bug __read_mostly;
 
 DEFINE_STATIC_KEY_FALSE(psi_disabled);
@@ -576,12 +578,16 @@
 		if (now < t->last_event_time + t->win.size)
 			continue;
 
+		trace_android_vh_psi_event(t);
+
 		/* Generate an event */
 		if (cmpxchg(&t->event, 0, 1) == 0)
 			wake_up_interruptible(&t->event_wait);
 		t->last_event_time = now;
 	}
 
+	trace_android_vh_psi_group(group);
+
 	if (new_stall)
 		memcpy(group->polling_total, total,
 				sizeof(group->polling_total));
diff --git a/kernel/sched/rt.c b/kernel/sched/rt.c
index eeedc4c..7c9e219 100644
--- a/kernel/sched/rt.c
+++ b/kernel/sched/rt.c
@@ -2635,7 +2635,7 @@
 	.balance		= balance_rt,
 	.pick_task		= pick_task_rt,
 	.select_task_rq		= select_task_rq_rt,
-	.set_cpus_allowed       = set_cpus_allowed_common_cb,
+	.set_cpus_allowed       = set_cpus_allowed_common,
 	.rq_online              = rq_online_rt,
 	.rq_offline             = rq_offline_rt,
 	.task_woken		= task_woken_rt,
diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h
index 4677126..683429f 100644
--- a/kernel/sched/sched.h
+++ b/kernel/sched/sched.h
@@ -1559,7 +1559,6 @@
 	 */
 	unsigned int clock_update_flags;
 #endif
-
 };
 
 #ifdef CONFIG_SMP
@@ -1910,13 +1909,6 @@
 
 extern int sched_update_scaling(void);
 
-static inline const struct cpumask *task_user_cpus(struct task_struct *p)
-{
-	if (!p->user_cpus_ptr)
-		return cpu_possible_mask; /* &init_task.cpus_mask */
-	return p->user_cpus_ptr;
-}
-
 extern void flush_smp_call_function_from_idle(void);
 
 #else /* !CONFIG_SMP: */
@@ -2173,12 +2165,6 @@
 
 #define RETRY_TASK		((void *)-1UL)
 
-struct affinity_context {
-	const struct cpumask *new_mask;
-	struct cpumask *user_mask;
-	unsigned int flags;
-};
-
 struct sched_class {
 
 #ifdef CONFIG_UCLAMP_TASK
@@ -2322,19 +2308,7 @@
 
 extern void trigger_load_balance(struct rq *rq);
 
-extern void set_cpus_allowed_dl(struct task_struct *p, struct affinity_context *ctx);
-extern void set_cpus_allowed_common(struct task_struct *p, struct affinity_context *ctx);
-
-static inline void set_cpus_allowed_common_cb(struct task_struct *p, const struct cpumask *new_mask, u32 flags)
-{
-	struct affinity_context ac = {
-		.new_mask  = new_mask,
-		.flags     = flags,
-	};
-
-	WARN_ONCE(1, "Unexpected use of sched_class::set_cpus_allowed()");
-	set_cpus_allowed_common(p, &ac);
-}
+extern void set_cpus_allowed_common(struct task_struct *p, const struct cpumask *new_mask, u32 flags);
 
 static inline struct task_struct *get_push_task(struct rq *rq)
 {
diff --git a/kernel/sched/stop_task.c b/kernel/sched/stop_task.c
index ad8fa4d..f988ebe 100644
--- a/kernel/sched/stop_task.c
+++ b/kernel/sched/stop_task.c
@@ -134,7 +134,7 @@
 	.balance		= balance_stop,
 	.pick_task		= pick_task_stop,
 	.select_task_rq		= select_task_rq_stop,
-	.set_cpus_allowed	= set_cpus_allowed_common_cb,
+	.set_cpus_allowed	= set_cpus_allowed_common,
 #endif
 
 	.task_tick		= task_tick_stop,
diff --git a/mm/cma.c b/mm/cma.c
index 4212604..812c3a9 100644
--- a/mm/cma.c
+++ b/mm/cma.c
@@ -112,13 +112,6 @@
 		goto out_error;
 
 	/*
-	 * The CMA region was marked as allocated by kmemleak when it was either
-	 * dynamically allocated or statically reserved. In any case,
-	 * inform kmemleak that the region is about to be freed to the page allocator.
-	 */
-	kmemleak_free_part_phys(cma_get_base(cma), cma_get_size(cma));
-
-	/*
 	 * alloc_contig_range() requires the pfn range specified to be in the
 	 * same zone. Simplify by forcing the entire CMA resv range to be in the
 	 * same zone.
@@ -337,8 +330,6 @@
 			ret = -EBUSY;
 			goto err;
 		}
-
-		kmemleak_alloc_phys(base, size, 0, 0);
 	} else {
 		phys_addr_t addr = 0;
 
@@ -380,6 +371,11 @@
 			}
 		}
 
+		/*
+		 * kmemleak scans/reads tracked objects for pointers to other
+		 * objects but this address isn't mapped and accessible
+		 */
+		kmemleak_ignore_phys(addr);
 		base = addr;
 	}
 
diff --git a/mm/memory.c b/mm/memory.c
index 41a44f2..8ce1033 100644
--- a/mm/memory.c
+++ b/mm/memory.c
@@ -253,6 +253,11 @@
 		vm_area_free_no_check(vma);
 }
 
+#if ALLOC_SPLIT_PTLOCKS
+static void wait_for_smp_sync(void *arg)
+{
+}
+#endif
 #endif	/* CONFIG_SPECULATIVE_PAGE_FAULT */
 
 /*
@@ -272,6 +277,14 @@
 	 */
 	spinlock_t *ptl = pmd_lock(tlb->mm, pmd);
 	spin_unlock(ptl);
+#if ALLOC_SPLIT_PTLOCKS
+	/*
+	 * The __pte_map_lock can still be working on the ->ptl in the read side
+	 * critical section while ->ptl is freed which results into the use-after
+	 * -free. Sync it using the smp_call_().
+	 */
+	smp_call_function(wait_for_smp_sync, NULL, 1);
+#endif
 #endif
 	pmd_clear(pmd);
 	pte_free_tlb(tlb, token, addr);
diff --git a/mm/page_ext.c b/mm/page_ext.c
index c429973..39daf13 100644
--- a/mm/page_ext.c
+++ b/mm/page_ext.c
@@ -156,7 +156,7 @@
 
 /**
  * page_ext_put() - Working with page extended information is done.
- * @page_ext - Page extended information received from page_ext_get().
+ * @page_ext: Page extended information received from page_ext_get().
  *
  * The page extended information of the page may not be valid after this
  * function is called.
diff --git a/mm/vmscan.c b/mm/vmscan.c
index 48e873c..c5c016f 100644
--- a/mm/vmscan.c
+++ b/mm/vmscan.c
@@ -2952,8 +2952,7 @@
 	struct mem_cgroup *memcg = lruvec_memcg(lruvec);
 	struct pglist_data *pgdat = lruvec_pgdat(lruvec);
 
-	if (!can_demote(pgdat->node_id, sc) &&
-	    mem_cgroup_get_nr_swap_pages(memcg) < MIN_LRU_BATCH)
+	if (!can_demote(pgdat->node_id, sc))
 		return 0;
 
 	return mem_cgroup_swappiness(memcg);
diff --git a/net/mac80211/cfg.c b/net/mac80211/cfg.c
index 641f6f81..7c6e874 100644
--- a/net/mac80211/cfg.c
+++ b/net/mac80211/cfg.c
@@ -3244,7 +3244,7 @@
 	if (err)
 		return err;
 
-	cfg80211_ch_switch_notify(sdata->dev, &sdata->csa_chandef, 0);
+	cfg80211_ch_switch_notify(sdata->dev, &sdata->csa_chandef, 0, 0);
 
 	return 0;
 }
@@ -3511,7 +3511,7 @@
 					  IEEE80211_QUEUE_STOP_REASON_CSA);
 
 	cfg80211_ch_switch_started_notify(sdata->dev, &sdata->csa_chandef, 0,
-					  params->count, params->block_tx);
+					  params->count, params->block_tx, 0);
 
 	if (changed) {
 		ieee80211_bss_info_change_notify(sdata, changed);
diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c
index 107a15a..6ac1f0c 100644
--- a/net/mac80211/mlme.c
+++ b/net/mac80211/mlme.c
@@ -1240,7 +1240,7 @@
 		return;
 	}
 
-	cfg80211_ch_switch_notify(sdata->dev, &sdata->reserved_chandef, 0);
+	cfg80211_ch_switch_notify(sdata->dev, &sdata->reserved_chandef, 0, 0);
 }
 
 void ieee80211_chswitch_done(struct ieee80211_vif *vif, bool success)
@@ -1442,7 +1442,7 @@
 	mutex_unlock(&local->mtx);
 
 	cfg80211_ch_switch_started_notify(sdata->dev, &csa_ie.chandef, 0,
-					  csa_ie.count, csa_ie.mode);
+					  csa_ie.count, csa_ie.mode, 0);
 
 	if (local->ops->channel_switch) {
 		/* use driver's channel switch callback */
diff --git a/net/wireless/ap.c b/net/wireless/ap.c
index e689232..0962770 100644
--- a/net/wireless/ap.c
+++ b/net/wireless/ap.c
@@ -39,7 +39,7 @@
 		wdev->u.ap.ssid_len = 0;
 		rdev_set_qos_map(rdev, dev, NULL);
 		if (notify)
-			nl80211_send_ap_stopped(wdev);
+			nl80211_send_ap_stopped(wdev, link_id);
 
 		/* Should we apply the grace period during beaconing interface
 		 * shutdown also?
diff --git a/net/wireless/chan.c b/net/wireless/chan.c
index 0e5835c..0b7e81d 100644
--- a/net/wireless/chan.c
+++ b/net/wireless/chan.c
@@ -1460,3 +1460,72 @@
 	}
 }
 EXPORT_SYMBOL(wdev_chandef);
+
+struct cfg80211_per_bw_puncturing_values {
+	u8 len;
+	const u16 *valid_values;
+};
+
+static const u16 puncturing_values_80mhz[] = {
+	0x8, 0x4, 0x2, 0x1
+};
+
+static const u16 puncturing_values_160mhz[] = {
+	 0x80, 0x40, 0x20, 0x10, 0x8, 0x4, 0x2, 0x1, 0xc0, 0x30, 0xc, 0x3
+};
+
+static const u16 puncturing_values_320mhz[] = {
+	0xc000, 0x3000, 0xc00, 0x300, 0xc0, 0x30, 0xc, 0x3, 0xf000, 0xf00,
+	0xf0, 0xf, 0xfc00, 0xf300, 0xf0c0, 0xf030, 0xf00c, 0xf003, 0xc00f,
+	0x300f, 0xc0f, 0x30f, 0xcf, 0x3f
+};
+
+#define CFG80211_PER_BW_VALID_PUNCTURING_VALUES(_bw) \
+	{ \
+		.len = ARRAY_SIZE(puncturing_values_ ## _bw ## mhz), \
+		.valid_values = puncturing_values_ ## _bw ## mhz \
+	}
+
+static const struct cfg80211_per_bw_puncturing_values per_bw_puncturing[] = {
+	CFG80211_PER_BW_VALID_PUNCTURING_VALUES(80),
+	CFG80211_PER_BW_VALID_PUNCTURING_VALUES(160),
+	CFG80211_PER_BW_VALID_PUNCTURING_VALUES(320)
+};
+
+bool cfg80211_valid_disable_subchannel_bitmap(u16 *bitmap,
+					      const struct cfg80211_chan_def *chandef)
+{
+	u32 idx, i, start_freq;
+
+	switch (chandef->width) {
+	case NL80211_CHAN_WIDTH_80:
+		idx = 0;
+		start_freq = chandef->center_freq1 - 40;
+		break;
+	case NL80211_CHAN_WIDTH_160:
+		idx = 1;
+		start_freq = chandef->center_freq1 - 80;
+		break;
+	case NL80211_CHAN_WIDTH_320:
+		idx = 2;
+		start_freq = chandef->center_freq1 - 160;
+		break;
+	default:
+		*bitmap = 0;
+		break;
+	}
+
+	if (!*bitmap)
+		return true;
+
+	/* check if primary channel is punctured */
+	if (*bitmap & (u16)BIT((chandef->chan->center_freq - start_freq) / 20))
+		return false;
+
+	for (i = 0; i < per_bw_puncturing[idx].len; i++)
+		if (per_bw_puncturing[idx].valid_values[i] == *bitmap)
+			return true;
+
+	return false;
+}
+EXPORT_SYMBOL(cfg80211_valid_disable_subchannel_bitmap);
diff --git a/net/wireless/core.h b/net/wireless/core.h
index 775e16c..af85d89 100644
--- a/net/wireless/core.h
+++ b/net/wireless/core.h
@@ -271,6 +271,8 @@
 		} ij;
 		struct {
 			u8 bssid[ETH_ALEN];
+			const u8 *td_bitmap;
+			u8 td_bitmap_len;
 		} pa;
 	};
 };
@@ -409,7 +411,8 @@
 			bool wextev);
 void __cfg80211_roamed(struct wireless_dev *wdev,
 		       struct cfg80211_roam_info *info);
-void __cfg80211_port_authorized(struct wireless_dev *wdev, const u8 *bssid);
+void __cfg80211_port_authorized(struct wireless_dev *wdev, const u8 *bssid,
+				const u8 *td_bitmap, u8 td_bitmap_len);
 int cfg80211_mgd_wext_connect(struct cfg80211_registered_device *rdev,
 			      struct wireless_dev *wdev);
 void cfg80211_autodisconnect_wk(struct work_struct *work);
diff --git a/net/wireless/mlme.c b/net/wireless/mlme.c
index 7149dfb..3f0631a 100644
--- a/net/wireless/mlme.c
+++ b/net/wireless/mlme.c
@@ -740,7 +740,10 @@
 		case NL80211_IFTYPE_AP:
 		case NL80211_IFTYPE_P2P_GO:
 		case NL80211_IFTYPE_AP_VLAN:
-			if (!ether_addr_equal(mgmt->bssid, wdev_address(wdev)))
+			if (!ether_addr_equal(mgmt->bssid, wdev_address(wdev)) &&
+			    (params->link_id < 0 ||
+			     !ether_addr_equal(mgmt->bssid,
+					       wdev->links[params->link_id].addr)))
 				err = -EINVAL;
 			break;
 		case NL80211_IFTYPE_MESH_POINT:
diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c
index 7b400cb..046d36b 100644
--- a/net/wireless/nl80211.c
+++ b/net/wireless/nl80211.c
@@ -462,6 +462,11 @@
 	[NL80211_STA_WME_MAX_SP] = { .type = NLA_U8 },
 };
 
+static struct netlink_range_validation nl80211_punct_bitmap_range = {
+	.min = 0,
+	.max = 0xffff,
+};
+
 static const struct nla_policy nl80211_policy[NUM_NL80211_ATTR] = {
 	[0] = { .strict_start_type = NL80211_ATTR_HE_OBSS_PD },
 	[NL80211_ATTR_WIPHY] = { .type = NLA_U32 },
@@ -805,6 +810,8 @@
 	[NL80211_ATTR_MLD_ADDR] = NLA_POLICY_EXACT_LEN(ETH_ALEN),
 	[NL80211_ATTR_MLO_SUPPORT] = { .type = NLA_FLAG },
 	[NL80211_ATTR_MAX_NUM_AKM_SUITES] = { .type = NLA_REJECT },
+	[NL80211_ATTR_PUNCT_BITMAP] =
+		NLA_POLICY_FULL_RANGE(NLA_U32, &nl80211_punct_bitmap_range),
 };
 
 /* policy for the key attributes */
@@ -883,7 +890,7 @@
 	},
 	[NL80211_REKEY_DATA_KCK] = {
 		.type = NLA_BINARY,
-		.len = NL80211_KCK_EXT_LEN
+		.len = NL80211_KCK_EXT_LEN_32
 	},
 	[NL80211_REKEY_DATA_REPLAY_CTR] = NLA_POLICY_EXACT_LEN(NL80211_REPLAY_CTR_LEN),
 	[NL80211_REKEY_DATA_AKM] = { .type = NLA_U32 },
@@ -1548,10 +1555,14 @@
 		if (wdev->connected)
 			return 0;
 		return -ENOLINK;
+	case NL80211_IFTYPE_NAN:
+		if (wiphy_ext_feature_isset(wdev->wiphy,
+					    NL80211_EXT_FEATURE_SECURE_NAN))
+			return 0;
+		return -EINVAL;
 	case NL80211_IFTYPE_UNSPECIFIED:
 	case NL80211_IFTYPE_OCB:
 	case NL80211_IFTYPE_MONITOR:
-	case NL80211_IFTYPE_NAN:
 	case NL80211_IFTYPE_P2P_DEVICE:
 	case NL80211_IFTYPE_WDS:
 	case NUM_NL80211_IFTYPES:
@@ -3180,6 +3191,21 @@
 		wdev->iftype == NL80211_IFTYPE_P2P_GO;
 }
 
+static int nl80211_parse_punct_bitmap(struct cfg80211_registered_device *rdev,
+				      struct genl_info *info,
+				      const struct cfg80211_chan_def *chandef,
+				      u16 *punct_bitmap)
+{
+	if (!wiphy_ext_feature_isset(&rdev->wiphy, NL80211_EXT_FEATURE_PUNCT))
+		return -EINVAL;
+
+	*punct_bitmap = nla_get_u32(info->attrs[NL80211_ATTR_PUNCT_BITMAP]);
+	if (!cfg80211_valid_disable_subchannel_bitmap(punct_bitmap, chandef))
+		return -EINVAL;
+
+	return 0;
+}
+
 int nl80211_parse_chandef(struct cfg80211_registered_device *rdev,
 			  struct genl_info *info,
 			  struct cfg80211_chan_def *chandef)
@@ -3875,6 +3901,9 @@
 			struct cfg80211_chan_def chandef = {};
 			int ret;
 
+			if (!link)
+				goto nla_put_failure;
+
 			if (nla_put_u8(msg, NL80211_ATTR_MLO_LINK_ID, link_id))
 				goto nla_put_failure;
 			if (nla_put(msg, NL80211_ATTR_MAC, ETH_ALEN,
@@ -5922,6 +5951,14 @@
 		goto out;
 	}
 
+	if (info->attrs[NL80211_ATTR_PUNCT_BITMAP]) {
+		err = nl80211_parse_punct_bitmap(rdev, info,
+						 &params->chandef,
+						 &params->punct_bitmap);
+		if (err)
+			goto out;
+	}
+
 	if (!cfg80211_reg_can_beacon_relax(&rdev->wiphy, &params->chandef,
 					   wdev->iftype)) {
 		err = -EINVAL;
@@ -6531,6 +6568,22 @@
 		    sinfo->assoc_req_ies))
 		goto nla_put_failure;
 
+	if (sinfo->assoc_resp_ies_len &&
+	    nla_put(msg, NL80211_ATTR_RESP_IE, sinfo->assoc_resp_ies_len,
+		    sinfo->assoc_resp_ies))
+		goto nla_put_failure;
+
+	if (sinfo->mlo_params_valid) {
+		if (nla_put_u8(msg, NL80211_ATTR_MLO_LINK_ID,
+			       sinfo->assoc_link_id))
+			goto nla_put_failure;
+
+		if (!is_zero_ether_addr(sinfo->mld_addr) &&
+		    nla_put(msg, NL80211_ATTR_MLD_ADDR, ETH_ALEN,
+			    sinfo->mld_addr))
+			goto nla_put_failure;
+	}
+
 	cfg80211_sinfo_release_content(sinfo);
 	genlmsg_end(msg, hdr);
 	return 0;
@@ -10061,6 +10114,14 @@
 	if (info->attrs[NL80211_ATTR_CH_SWITCH_BLOCK_TX])
 		params.block_tx = true;
 
+	if (info->attrs[NL80211_ATTR_PUNCT_BITMAP]) {
+		err = nl80211_parse_punct_bitmap(rdev, info,
+						 &params.chandef,
+						 &params.punct_bitmap);
+		if (err)
+			goto free;
+	}
+
 	wdev_lock(wdev);
 	err = rdev_channel_switch(rdev, dev, &params);
 	wdev_unlock(wdev);
@@ -12257,6 +12318,10 @@
 	case NL80211_IFTYPE_P2P_DEVICE:
 		break;
 	case NL80211_IFTYPE_NAN:
+		if (!wiphy_ext_feature_isset(wdev->wiphy,
+					     NL80211_EXT_FEATURE_SECURE_NAN))
+			return -EOPNOTSUPP;
+		break;
 	default:
 		return -EOPNOTSUPP;
 	}
@@ -12314,6 +12379,10 @@
 	case NL80211_IFTYPE_P2P_GO:
 		break;
 	case NL80211_IFTYPE_NAN:
+		if (!wiphy_ext_feature_isset(wdev->wiphy,
+					     NL80211_EXT_FEATURE_SECURE_NAN))
+			return -EOPNOTSUPP;
+		break;
 	default:
 		return -EOPNOTSUPP;
 	}
@@ -12451,6 +12520,10 @@
 	case NL80211_IFTYPE_P2P_DEVICE:
 		break;
 	case NL80211_IFTYPE_NAN:
+		if (!wiphy_ext_feature_isset(wdev->wiphy,
+					     NL80211_EXT_FEATURE_SECURE_NAN))
+			return -EOPNOTSUPP;
+		break;
 	default:
 		return -EOPNOTSUPP;
 	}
@@ -13809,7 +13882,9 @@
 		return -ERANGE;
 	if (nla_len(tb[NL80211_REKEY_DATA_KCK]) != NL80211_KCK_LEN &&
 	    !(rdev->wiphy.flags & WIPHY_FLAG_SUPPORTS_EXT_KEK_KCK &&
-	      nla_len(tb[NL80211_REKEY_DATA_KEK]) == NL80211_KCK_EXT_LEN))
+	      nla_len(tb[NL80211_REKEY_DATA_KCK]) == NL80211_KCK_EXT_LEN) &&
+	     !(rdev->wiphy.flags & WIPHY_FLAG_SUPPORTS_EXT_KCK_32 &&
+	       nla_len(tb[NL80211_REKEY_DATA_KCK]) == NL80211_KCK_EXT_LEN_32))
 		return -ERANGE;
 
 	rekey_data.kek = nla_data(tb[NL80211_REKEY_DATA_KEK]);
@@ -17235,7 +17310,7 @@
 	.name = NL80211_GENL_NAME,	/* have users key off the name instead */
 	.hdrsize = 0,			/* no private header */
 	.version = 1,			/* no particular meaning now */
-	.maxattr = NL80211_ATTR_MAX_NUM_AKM_SUITES,
+	.maxattr = NL80211_ATTR_PUNCT_BITMAP,
 	.policy = nl80211_policy,
 	.netnsok = true,
 	.pre_doit = nl80211_pre_doit,
@@ -17948,7 +18023,8 @@
 }
 
 void nl80211_send_port_authorized(struct cfg80211_registered_device *rdev,
-				  struct net_device *netdev, const u8 *bssid)
+				  struct net_device *netdev, const u8 *bssid,
+				  const u8 *td_bitmap, u8 td_bitmap_len)
 {
 	struct sk_buff *msg;
 	void *hdr;
@@ -17968,6 +18044,11 @@
 	    nla_put(msg, NL80211_ATTR_MAC, ETH_ALEN, bssid))
 		goto nla_put_failure;
 
+	if ((td_bitmap_len > 0) && td_bitmap)
+		if (nla_put(msg, NL80211_ATTR_TD_BITMAP,
+			    td_bitmap_len, td_bitmap))
+			goto nla_put_failure;
+
 	genlmsg_end(msg, hdr);
 
 	genlmsg_multicast_netns(&nl80211_fam, wiphy_net(&rdev->wiphy), msg, 0,
@@ -18947,7 +19028,7 @@
 				     struct cfg80211_chan_def *chandef,
 				     gfp_t gfp,
 				     enum nl80211_commands notif,
-				     u8 count, bool quiet)
+				     u8 count, bool quiet, u16 punct_bitmap)
 {
 	struct wireless_dev *wdev = netdev->ieee80211_ptr;
 	struct sk_buff *msg;
@@ -18981,6 +19062,9 @@
 			goto nla_put_failure;
 	}
 
+	if (nla_put_u32(msg, NL80211_ATTR_PUNCT_BITMAP, punct_bitmap))
+		goto nla_put_failure;
+
 	genlmsg_end(msg, hdr);
 
 	genlmsg_multicast_netns(&nl80211_fam, wiphy_net(&rdev->wiphy), msg, 0,
@@ -18993,7 +19077,7 @@
 
 void cfg80211_ch_switch_notify(struct net_device *dev,
 			       struct cfg80211_chan_def *chandef,
-			       unsigned int link_id)
+			       unsigned int link_id, u16 punct_bitmap)
 {
 	struct wireless_dev *wdev = dev->ieee80211_ptr;
 	struct wiphy *wiphy = wdev->wiphy;
@@ -19002,7 +19086,7 @@
 	ASSERT_WDEV_LOCK(wdev);
 	WARN_INVALID_LINK_ID(wdev, link_id);
 
-	trace_cfg80211_ch_switch_notify(dev, chandef, link_id);
+	trace_cfg80211_ch_switch_notify(dev, chandef, link_id, punct_bitmap);
 
 	switch (wdev->iftype) {
 	case NL80211_IFTYPE_STATION:
@@ -19030,14 +19114,15 @@
 	cfg80211_sched_dfs_chan_update(rdev);
 
 	nl80211_ch_switch_notify(rdev, dev, link_id, chandef, GFP_KERNEL,
-				 NL80211_CMD_CH_SWITCH_NOTIFY, 0, false);
+				 NL80211_CMD_CH_SWITCH_NOTIFY, 0, false,
+				 punct_bitmap);
 }
 EXPORT_SYMBOL(cfg80211_ch_switch_notify);
 
 void cfg80211_ch_switch_started_notify(struct net_device *dev,
 				       struct cfg80211_chan_def *chandef,
 				       unsigned int link_id, u8 count,
-				       bool quiet)
+				       bool quiet, u16 punct_bitmap)
 {
 	struct wireless_dev *wdev = dev->ieee80211_ptr;
 	struct wiphy *wiphy = wdev->wiphy;
@@ -19046,11 +19131,13 @@
 	ASSERT_WDEV_LOCK(wdev);
 	WARN_INVALID_LINK_ID(wdev, link_id);
 
-	trace_cfg80211_ch_switch_started_notify(dev, chandef, link_id);
+	trace_cfg80211_ch_switch_started_notify(dev, chandef, link_id,
+						punct_bitmap);
+
 
 	nl80211_ch_switch_notify(rdev, dev, link_id, chandef, GFP_KERNEL,
 				 NL80211_CMD_CH_SWITCH_STARTED_NOTIFY,
-				 count, quiet);
+				 count, quiet, punct_bitmap);
 }
 EXPORT_SYMBOL(cfg80211_ch_switch_started_notify);
 
@@ -19654,7 +19741,7 @@
 }
 EXPORT_SYMBOL(cfg80211_crit_proto_stopped);
 
-void nl80211_send_ap_stopped(struct wireless_dev *wdev)
+void nl80211_send_ap_stopped(struct wireless_dev *wdev, unsigned int link_id)
 {
 	struct wiphy *wiphy = wdev->wiphy;
 	struct cfg80211_registered_device *rdev = wiphy_to_rdev(wiphy);
@@ -19672,7 +19759,9 @@
 	if (nla_put_u32(msg, NL80211_ATTR_WIPHY, rdev->wiphy_idx) ||
 	    nla_put_u32(msg, NL80211_ATTR_IFINDEX, wdev->netdev->ifindex) ||
 	    nla_put_u64_64bit(msg, NL80211_ATTR_WDEV, wdev_id(wdev),
-			      NL80211_ATTR_PAD))
+			      NL80211_ATTR_PAD) ||
+	    (wdev->valid_links &&
+	     nla_put_u8(msg, NL80211_ATTR_MLO_LINK_ID, link_id)))
 		goto out;
 
 	genlmsg_end(msg, hdr);
@@ -19711,7 +19800,9 @@
 			params->action) ||
 	    nla_put(msg, NL80211_ATTR_BSSID, ETH_ALEN, params->bssid) ||
 	    nla_put(msg, NL80211_ATTR_SSID, params->ssid.ssid_len,
-		    params->ssid.ssid))
+		    params->ssid.ssid) ||
+	    (!is_zero_ether_addr(params->mld_addr) &&
+	     nla_put(msg, NL80211_ATTR_MLD_ADDR, ETH_ALEN, params->mld_addr)))
 		goto nla_put_failure;
 
 	genlmsg_end(msg, hdr);
@@ -19753,6 +19844,17 @@
 	    nla_put(msg, NL80211_ATTR_IE, owe_info->ie_len, owe_info->ie))
 		goto nla_put_failure;
 
+	if (owe_info->assoc_link_id != -1) {
+		if (nla_put_u8(msg, NL80211_ATTR_MLO_LINK_ID,
+			       owe_info->assoc_link_id))
+			goto nla_put_failure;
+
+		if (!is_zero_ether_addr(owe_info->peer_mld_addr) &&
+		    nla_put(msg, NL80211_ATTR_MLD_ADDR, ETH_ALEN,
+			    owe_info->peer_mld_addr))
+			goto nla_put_failure;
+	}
+
 	genlmsg_end(msg, hdr);
 
 	genlmsg_multicast_netns(&nl80211_fam, wiphy_net(&rdev->wiphy), msg, 0,
diff --git a/net/wireless/nl80211.h b/net/wireless/nl80211.h
index 855d540..0278d81 100644
--- a/net/wireless/nl80211.h
+++ b/net/wireless/nl80211.h
@@ -83,7 +83,8 @@
 			 struct net_device *netdev,
 			 struct cfg80211_roam_info *info, gfp_t gfp);
 void nl80211_send_port_authorized(struct cfg80211_registered_device *rdev,
-				  struct net_device *netdev, const u8 *bssid);
+				  struct net_device *netdev, const u8 *bssid,
+				  const u8 *td_bitmap, u8 td_bitmap_len);
 void nl80211_send_disconnected(struct cfg80211_registered_device *rdev,
 			       struct net_device *netdev, u16 reason,
 			       const u8 *ie, size_t ie_len, bool from_ap);
@@ -113,7 +114,7 @@
 		     enum nl80211_radar_event event,
 		     struct net_device *netdev, gfp_t gfp);
 
-void nl80211_send_ap_stopped(struct wireless_dev *wdev);
+void nl80211_send_ap_stopped(struct wireless_dev *wdev, unsigned int link_id);
 
 void cfg80211_rdev_free_coalesce(struct cfg80211_registered_device *rdev);
 
diff --git a/net/wireless/sme.c b/net/wireless/sme.c
index 07f676a..a4f9e4d 100644
--- a/net/wireless/sme.c
+++ b/net/wireless/sme.c
@@ -723,6 +723,7 @@
 {
 	struct wireless_dev *wdev = dev->ieee80211_ptr;
 	const struct element *country_elem = NULL;
+	const struct element *ssid;
 	const u8 *country_data;
 	u8 country_datalen;
 #ifdef CONFIG_CFG80211_WEXT
@@ -882,6 +883,22 @@
 				   country_data, country_datalen);
 	kfree(country_data);
 
+	if (!wdev->u.client.ssid_len) {
+		rcu_read_lock();
+		for_each_valid_link(cr, link) {
+			ssid = ieee80211_bss_get_elem(cr->links[link].bss,
+						      WLAN_EID_SSID);
+
+			if (!ssid || !ssid->datalen)
+				continue;
+
+			memcpy(wdev->u.client.ssid, ssid->data, ssid->datalen);
+			wdev->u.client.ssid_len = ssid->datalen;
+			break;
+		}
+		rcu_read_unlock();
+	}
+
 	return;
 out:
 	for_each_valid_link(cr, link)
@@ -1250,7 +1267,8 @@
 }
 EXPORT_SYMBOL(cfg80211_roamed);
 
-void __cfg80211_port_authorized(struct wireless_dev *wdev, const u8 *bssid)
+void __cfg80211_port_authorized(struct wireless_dev *wdev, const u8 *bssid,
+					const u8 *td_bitmap, u8 td_bitmap_len)
 {
 	ASSERT_WDEV_LOCK(wdev);
 
@@ -1263,11 +1281,11 @@
 		return;
 
 	nl80211_send_port_authorized(wiphy_to_rdev(wdev->wiphy), wdev->netdev,
-				     bssid);
+				     bssid, td_bitmap, td_bitmap_len);
 }
 
 void cfg80211_port_authorized(struct net_device *dev, const u8 *bssid,
-			      gfp_t gfp)
+			      const u8 *td_bitmap, u8 td_bitmap_len, gfp_t gfp)
 {
 	struct wireless_dev *wdev = dev->ieee80211_ptr;
 	struct cfg80211_registered_device *rdev = wiphy_to_rdev(wdev->wiphy);
@@ -1277,12 +1295,15 @@
 	if (WARN_ON(!bssid))
 		return;
 
-	ev = kzalloc(sizeof(*ev), gfp);
+	ev = kzalloc(sizeof(*ev) + td_bitmap_len, gfp);
 	if (!ev)
 		return;
 
 	ev->type = EVENT_PORT_AUTHORIZED;
 	memcpy(ev->pa.bssid, bssid, ETH_ALEN);
+	ev->pa.td_bitmap = ((u8 *)ev) + sizeof(*ev);
+	ev->pa.td_bitmap_len = td_bitmap_len;
+	memcpy((void *)ev->pa.td_bitmap, td_bitmap, td_bitmap_len);
 
 	/*
 	 * Use the wdev event list so that if there are pending
diff --git a/net/wireless/trace.h b/net/wireless/trace.h
index a405c3e..ca7474ee 100644
--- a/net/wireless/trace.h
+++ b/net/wireless/trace.h
@@ -19,8 +19,6 @@
 	else							     \
 		eth_zero_addr(__entry->entry_mac);		     \
 	} while (0)
-#define MAC_PR_FMT "%pM"
-#define MAC_PR_ARG(entry_mac) (__entry->entry_mac)
 
 #define MAXNAME		32
 #define WIPHY_ENTRY	__array(char, wiphy_name, 32)
@@ -454,10 +452,10 @@
 		__entry->pairwise = pairwise;
 	),
 	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", link_id: %d, "
-		  "key_index: %u, pairwise: %s, mac addr: " MAC_PR_FMT,
+		  "key_index: %u, pairwise: %s, mac addr: %pM",
 		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->link_id,
 		  __entry->key_index, BOOL_TO_STR(__entry->pairwise),
-		  MAC_PR_ARG(mac_addr))
+		  __entry->mac_addr)
 );
 
 DEFINE_EVENT(key_handle, rdev_get_key,
@@ -496,10 +494,10 @@
 	),
 	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", link_id: %d, "
 		  "key_index: %u, mode: %u, pairwise: %s, "
-		  "mac addr: " MAC_PR_FMT,
+		  "mac addr: %pM",
 		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->link_id,
 		  __entry->key_index, __entry->mode,
-		  BOOL_TO_STR(__entry->pairwise), MAC_PR_ARG(mac_addr))
+		  BOOL_TO_STR(__entry->pairwise), __entry->mac_addr)
 );
 
 TRACE_EVENT(rdev_set_default_key,
@@ -813,11 +811,11 @@
 		__entry->opmode_notif_used =
 			params->link_sta_params.opmode_notif_used;
 	),
-	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", station mac: " MAC_PR_FMT
+	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", station mac: %pM"
 		  ", station flags mask: %u, station flags set: %u, "
 		  "station modify mask: %u, listen interval: %d, aid: %u, "
 		  "plink action: %u, plink state: %u, uapsd queues: %u, vlan:%s",
-		  WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(sta_mac),
+		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->sta_mac,
 		  __entry->sta_flags_mask, __entry->sta_flags_set,
 		  __entry->sta_modify_mask, __entry->listen_interval,
 		  __entry->aid, __entry->plink_action, __entry->plink_state,
@@ -849,8 +847,8 @@
 		NETDEV_ASSIGN;
 		MAC_ASSIGN(sta_mac, mac);
 	),
-	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", mac: " MAC_PR_FMT,
-		  WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(sta_mac))
+	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", mac: %pM",
+		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->sta_mac)
 );
 
 DECLARE_EVENT_CLASS(station_del,
@@ -871,9 +869,9 @@
 		__entry->subtype = params->subtype;
 		__entry->reason_code = params->reason_code;
 	),
-	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", station mac: " MAC_PR_FMT
+	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", station mac: %pM"
 		  ", subtype: %u, reason_code: %u",
-		  WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(sta_mac),
+		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->sta_mac,
 		  __entry->subtype, __entry->reason_code)
 );
 
@@ -909,8 +907,8 @@
 		MAC_ASSIGN(sta_mac, mac);
 		__entry->idx = _idx;
 	),
-	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", station mac: " MAC_PR_FMT ", idx: %d",
-		  WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(sta_mac),
+	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", station mac: %pM, idx: %d",
+		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->sta_mac,
 		  __entry->idx)
 );
 
@@ -947,9 +945,9 @@
 		MAC_ASSIGN(dst, dst);
 		MAC_ASSIGN(next_hop, next_hop);
 	),
-	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", destination: " MAC_PR_FMT ", next hop: " MAC_PR_FMT,
-		  WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(dst),
-		  MAC_PR_ARG(next_hop))
+	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", destination: %pM, next hop: %pM",
+		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->dst,
+		  __entry->next_hop)
 );
 
 DEFINE_EVENT(mpath_evt, rdev_add_mpath,
@@ -988,10 +986,9 @@
 		MAC_ASSIGN(next_hop, next_hop);
 		__entry->idx = _idx;
 	),
-	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", index: %d, destination: "
-		  MAC_PR_FMT ", next hop: " MAC_PR_FMT,
-		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->idx, MAC_PR_ARG(dst),
-		  MAC_PR_ARG(next_hop))
+	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", index: %d, destination: %pM, next hop: %pM",
+		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->idx, __entry->dst,
+		  __entry->next_hop)
 );
 
 TRACE_EVENT(rdev_get_mpp,
@@ -1010,9 +1007,9 @@
 		MAC_ASSIGN(dst, dst);
 		MAC_ASSIGN(mpp, mpp);
 	),
-	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", destination: " MAC_PR_FMT
-		  ", mpp: " MAC_PR_FMT, WIPHY_PR_ARG, NETDEV_PR_ARG,
-		  MAC_PR_ARG(dst), MAC_PR_ARG(mpp))
+	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", destination: %pM"
+		  ", mpp: %pM", WIPHY_PR_ARG, NETDEV_PR_ARG,
+		  __entry->dst, __entry->mpp)
 );
 
 TRACE_EVENT(rdev_dump_mpp,
@@ -1033,10 +1030,9 @@
 		MAC_ASSIGN(mpp, mpp);
 		__entry->idx = _idx;
 	),
-	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", index: %d, destination: "
-		  MAC_PR_FMT ", mpp: " MAC_PR_FMT,
-		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->idx, MAC_PR_ARG(dst),
-		  MAC_PR_ARG(mpp))
+	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", index: %d, destination: %pM, mpp: %pM",
+		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->idx, __entry->dst,
+		  __entry->mpp)
 );
 
 TRACE_EVENT(rdev_return_int_mpath_info,
@@ -1243,9 +1239,9 @@
 			eth_zero_addr(__entry->bssid);
 		__entry->auth_type = req->auth_type;
 	),
-	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", auth type: %d, bssid: " MAC_PR_FMT,
+	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", auth type: %d, bssid: %pM",
 		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->auth_type,
-		  MAC_PR_ARG(bssid))
+		  __entry->bssid)
 );
 
 TRACE_EVENT(rdev_assoc,
@@ -1294,10 +1290,10 @@
 			memcpy(__get_dynamic_array(fils_nonces),
 			       req->fils_nonces, 2 * FILS_NONCE_LEN);
 	),
-	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: " MAC_PR_FMT
-		  ", previous bssid: " MAC_PR_FMT ", use mfp: %s, flags: %u",
-		  WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(bssid),
-		  MAC_PR_ARG(prev_bssid), BOOL_TO_STR(__entry->use_mfp),
+	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: %pM"
+		  ", previous bssid: %pM, use mfp: %s, flags: %u",
+		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->bssid,
+		  __entry->prev_bssid, BOOL_TO_STR(__entry->use_mfp),
 		  __entry->flags)
 );
 
@@ -1317,8 +1313,8 @@
 		MAC_ASSIGN(bssid, req->bssid);
 		__entry->reason_code = req->reason_code;
 	),
-	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: " MAC_PR_FMT ", reason: %u",
-		  WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(bssid),
+	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: %pM, reason: %u",
+		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->bssid,
 		  __entry->reason_code)
 );
 
@@ -1340,9 +1336,9 @@
 		__entry->reason_code = req->reason_code;
 		__entry->local_state_change = req->local_state_change;
 	),
-	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: " MAC_PR_FMT
+	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: %pM"
 		  ", reason: %u, local state change: %s",
-		  WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(bssid),
+		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->bssid,
 		  __entry->reason_code,
 		  BOOL_TO_STR(__entry->local_state_change))
 );
@@ -1413,12 +1409,12 @@
 		__entry->flags = sme->flags;
 		MAC_ASSIGN(prev_bssid, sme->prev_bssid);
 	),
-	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: " MAC_PR_FMT
+	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: %pM"
 		  ", ssid: %s, auth type: %d, privacy: %s, wpa versions: %u, "
-		  "flags: %u, previous bssid: " MAC_PR_FMT,
-		  WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(bssid), __entry->ssid,
+		  "flags: %u, previous bssid: %pM",
+		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->bssid, __entry->ssid,
 		  __entry->auth_type, BOOL_TO_STR(__entry->privacy),
-		  __entry->wpa_versions, __entry->flags, MAC_PR_ARG(prev_bssid))
+		  __entry->wpa_versions, __entry->flags, __entry->prev_bssid)
 );
 
 TRACE_EVENT(rdev_update_connect_params,
@@ -1542,8 +1538,8 @@
 		memset(__entry->ssid, 0, IEEE80211_MAX_SSID_LEN + 1);
 		memcpy(__entry->ssid, params->ssid, params->ssid_len);
 	),
-	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: " MAC_PR_FMT ", ssid: %s",
-		  WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(bssid), __entry->ssid)
+	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: %pM, ssid: %s",
+		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->bssid, __entry->ssid)
 );
 
 TRACE_EVENT(rdev_join_ocb,
@@ -1664,9 +1660,9 @@
 		__entry->link_id = link_id;
 		MAC_ASSIGN(peer, peer);
 	),
-	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", link_id: %d, peer: " MAC_PR_FMT,
+	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", link_id: %d, peer: %pM",
 		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->link_id,
-		  MAC_PR_ARG(peer))
+		  __entry->peer)
 );
 
 TRACE_EVENT(rdev_update_mgmt_frame_registrations,
@@ -1810,10 +1806,10 @@
 		__entry->initiator = initiator;
 		memcpy(__get_dynamic_array(buf), buf, len);
 	),
-	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " MAC_PR_FMT ", action_code: %u, "
+	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", %pM, action_code: %u, "
 		  "dialog_token: %u, status_code: %u, peer_capability: %u "
 		  "initiator: %s buf: %#.2x ",
-		  WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(peer),
+		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->peer,
 		  __entry->action_code, __entry->dialog_token,
 		  __entry->status_code, __entry->peer_capability,
 		  BOOL_TO_STR(__entry->initiator),
@@ -1893,8 +1889,8 @@
 		MAC_ASSIGN(peer, peer);
 		__entry->oper = oper;
 	),
-	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " MAC_PR_FMT ", oper: %d",
-		  WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(peer), __entry->oper)
+	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", %pM, oper: %d",
+		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->peer, __entry->oper)
 );
 
 DECLARE_EVENT_CLASS(rdev_pmksa,
@@ -1911,8 +1907,8 @@
 		NETDEV_ASSIGN;
 		MAC_ASSIGN(bssid, pmksa->bssid);
 	),
-	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: " MAC_PR_FMT,
-		  WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(bssid))
+	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: %pM",
+		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->bssid)
 );
 
 TRACE_EVENT(rdev_probe_client,
@@ -1929,8 +1925,8 @@
 		NETDEV_ASSIGN;
 		MAC_ASSIGN(peer, peer);
 	),
-	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " MAC_PR_FMT,
-		  WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(peer))
+	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", %pM",
+		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->peer)
 );
 
 DEFINE_EVENT(rdev_pmksa, rdev_set_pmksa,
@@ -2051,9 +2047,9 @@
 		__entry->unencrypted = unencrypted;
 		__entry->link_id = link_id;
 	),
-	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " MAC_PR_FMT ","
+	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", %pM,"
 		  " proto: 0x%x, unencrypted: %s, link: %d",
-		  WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(dest),
+		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->dest,
 		  be16_to_cpu(__entry->proto),
 		  BOOL_TO_STR(__entry->unencrypted),
 		  __entry->link_id)
@@ -2392,8 +2388,8 @@
 		__entry->user_prio = user_prio;
 		__entry->admitted_time = admitted_time;
 	),
-	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " MAC_PR_FMT ", TSID %d, UP %d, time %d",
-		  WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(peer),
+	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", %pM, TSID %d, UP %d, time %d",
+		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->peer,
 		  __entry->tsid, __entry->user_prio, __entry->admitted_time)
 );
 
@@ -2413,8 +2409,8 @@
 		MAC_ASSIGN(peer, peer);
 		__entry->tsid = tsid;
 	),
-	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " MAC_PR_FMT ", TSID %d",
-		  WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(peer), __entry->tsid)
+	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", %pM, TSID %d",
+		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->peer, __entry->tsid)
 );
 
 TRACE_EVENT(rdev_tdls_channel_switch,
@@ -2435,9 +2431,9 @@
 		MAC_ASSIGN(addr, addr);
 		CHAN_DEF_ASSIGN(chandef);
 	),
-	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " MAC_PR_FMT
+	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", %pM"
 		  " oper class %d, " CHAN_DEF_PR_FMT,
-		  WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(addr),
+		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->addr,
 		  __entry->oper_class, CHAN_DEF_PR_ARG)
 );
 
@@ -2455,8 +2451,8 @@
 		NETDEV_ASSIGN;
 		MAC_ASSIGN(addr, addr);
 	),
-	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " MAC_PR_FMT,
-		  WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(addr))
+	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", %pM",
+		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->addr)
 );
 
 TRACE_EVENT(rdev_set_pmk,
@@ -2488,9 +2484,9 @@
 		       pmk_conf->pmk_r0_name ? WLAN_PMK_NAME_LEN : 0);
 	),
 
-	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " MAC_PR_FMT
+	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", %pM"
 		  "pmk_len=%u, pmk: %s pmk_r0_name: %s", WIPHY_PR_ARG,
-		  NETDEV_PR_ARG, MAC_PR_ARG(aa), __entry->pmk_len,
+		  NETDEV_PR_ARG, __entry->aa, __entry->pmk_len,
 		  __print_array(__get_dynamic_array(pmk),
 				__get_dynamic_array_len(pmk), 1),
 		  __entry->pmk_r0_name_len ?
@@ -2515,8 +2511,8 @@
 		MAC_ASSIGN(aa, aa);
 	),
 
-	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " MAC_PR_FMT,
-		  WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(aa))
+	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", %pM",
+		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->aa)
 );
 
 TRACE_EVENT(rdev_external_auth,
@@ -2528,6 +2524,7 @@
 			     MAC_ENTRY(bssid)
 			     __array(u8, ssid, IEEE80211_MAX_SSID_LEN + 1)
 			     __field(u16, status)
+			     MAC_ENTRY(mld_addr)
 	    ),
 	    TP_fast_assign(WIPHY_ASSIGN;
 			   NETDEV_ASSIGN;
@@ -2536,10 +2533,12 @@
 			   memcpy(__entry->ssid, params->ssid.ssid,
 				  params->ssid.ssid_len);
 			   __entry->status = params->status;
+			   MAC_ASSIGN(mld_addr, params->mld_addr);
 	    ),
-	    TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: " MAC_PR_FMT
-		      ", ssid: %s, status: %u", WIPHY_PR_ARG, NETDEV_PR_ARG,
-		      __entry->bssid, __entry->ssid, __entry->status)
+	    TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: %pM"
+		      ", ssid: %s, status: %u, mld_addr: %pM",
+		      WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->bssid,
+		      __entry->ssid, __entry->status, __entry->mld_addr)
 );
 
 TRACE_EVENT(rdev_start_radar_detection,
@@ -2720,8 +2719,8 @@
 			   __entry->status = owe_info->status;
 			   memcpy(__get_dynamic_array(ie),
 				  owe_info->ie, owe_info->ie_len);),
-	    TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", peer: " MAC_PR_FMT
-		  " status %d", WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(peer),
+	    TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", peer: %pM"
+		  " status %d", WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->peer,
 		  __entry->status)
 );
 
@@ -2739,8 +2738,8 @@
 		NETDEV_ASSIGN;
 		MAC_ASSIGN(dest, dest);
 	),
-	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " MAC_PR_FMT,
-		  WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(dest))
+	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", %pM",
+		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->dest)
 );
 
 TRACE_EVENT(rdev_set_tid_config,
@@ -2757,8 +2756,8 @@
 		NETDEV_ASSIGN;
 		MAC_ASSIGN(peer, tid_conf->peer);
 	),
-	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", peer: " MAC_PR_FMT,
-		  WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(peer))
+	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", peer: %pM",
+		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->peer)
 );
 
 TRACE_EVENT(rdev_reset_tid_config,
@@ -2777,8 +2776,8 @@
 		MAC_ASSIGN(peer, peer);
 		__entry->tids = tids;
 	),
-	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", peer: " MAC_PR_FMT ", tids: 0x%x",
-		  WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(peer), __entry->tids)
+	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", peer: %pM, tids: 0x%x",
+		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->peer, __entry->tids)
 );
 
 TRACE_EVENT(rdev_set_sar_specs,
@@ -2881,8 +2880,8 @@
 		NETDEV_ASSIGN;
 		MAC_ASSIGN(macaddr, macaddr);
 	),
-	TP_printk(NETDEV_PR_FMT ", mac: " MAC_PR_FMT,
-		  NETDEV_PR_ARG, MAC_PR_ARG(macaddr))
+	TP_printk(NETDEV_PR_FMT ", mac: %pM",
+		  NETDEV_PR_ARG, __entry->macaddr)
 );
 
 DEFINE_EVENT(cfg80211_netdev_mac_evt, cfg80211_notify_new_peer_candidate,
@@ -2920,8 +2919,8 @@
 		MAC_ASSIGN(ap_addr,
 			   data->ap_mld_addr ?: data->links[0].bss->bssid);
 	),
-	TP_printk(NETDEV_PR_FMT ", " MAC_PR_FMT,
-		  NETDEV_PR_ARG, MAC_PR_ARG(ap_addr))
+	TP_printk(NETDEV_PR_FMT ", %pM",
+		  NETDEV_PR_ARG, __entry->ap_addr)
 );
 
 DECLARE_EVENT_CLASS(netdev_frame_event,
@@ -2981,8 +2980,8 @@
 		NETDEV_ASSIGN;
 		MAC_ASSIGN(mac, mac)
 	),
-	TP_printk(NETDEV_PR_FMT ", mac: " MAC_PR_FMT,
-		  NETDEV_PR_ARG, MAC_PR_ARG(mac))
+	TP_printk(NETDEV_PR_FMT ", mac: %pM",
+		  NETDEV_PR_ARG, __entry->mac)
 );
 
 DEFINE_EVENT(netdev_mac_evt, cfg80211_send_auth_timeout,
@@ -3004,8 +3003,8 @@
 		MAC_ASSIGN(ap_addr, data->ap_mld_addr ?: data->bss[0]->bssid);
 		__entry->timeout = data->timeout;
 	),
-	TP_printk(NETDEV_PR_FMT ", mac: " MAC_PR_FMT ", timeout: %d",
-		  NETDEV_PR_ARG, MAC_PR_ARG(ap_addr), __entry->timeout)
+	TP_printk(NETDEV_PR_FMT ", mac: %pM, timeout: %d",
+		  NETDEV_PR_ARG, __entry->ap_addr, __entry->timeout)
 );
 
 TRACE_EVENT(cfg80211_michael_mic_failure,
@@ -3027,8 +3026,8 @@
 		if (tsc)
 			memcpy(__entry->tsc, tsc, 6);
 	),
-	TP_printk(NETDEV_PR_FMT ", " MAC_PR_FMT ", key type: %d, key id: %d, tsc: %pm",
-		  NETDEV_PR_ARG, MAC_PR_ARG(addr), __entry->key_type,
+	TP_printk(NETDEV_PR_FMT ", %pM, key type: %d, key id: %d, tsc: %pm",
+		  NETDEV_PR_ARG, __entry->addr, __entry->key_type,
 		  __entry->key_id, __entry->tsc)
 );
 
@@ -3104,8 +3103,8 @@
 		MAC_ASSIGN(mac_addr, mac_addr);
 		SINFO_ASSIGN;
 	),
-	TP_printk(NETDEV_PR_FMT ", " MAC_PR_FMT,
-		  NETDEV_PR_ARG, MAC_PR_ARG(mac_addr))
+	TP_printk(NETDEV_PR_FMT ", %pM",
+		  NETDEV_PR_ARG, __entry->mac_addr)
 );
 
 DEFINE_EVENT(cfg80211_netdev_mac_evt, cfg80211_del_sta,
@@ -3182,8 +3181,8 @@
 		__entry->proto = be16_to_cpu(skb->protocol);
 		__entry->unencrypted = unencrypted;
 	),
-	TP_printk(NETDEV_PR_FMT ", len=%d, " MAC_PR_FMT ", proto: 0x%x, unencrypted: %s",
-		  NETDEV_PR_ARG, __entry->len, MAC_PR_ARG(from),
+	TP_printk(NETDEV_PR_FMT ", len=%d, %pM, proto: 0x%x, unencrypted: %s",
+		  NETDEV_PR_ARG, __entry->len, __entry->from,
 		  __entry->proto, BOOL_TO_STR(__entry->unencrypted))
 );
 
@@ -3245,39 +3244,47 @@
 TRACE_EVENT(cfg80211_ch_switch_notify,
 	TP_PROTO(struct net_device *netdev,
 		 struct cfg80211_chan_def *chandef,
-		 unsigned int link_id),
-	TP_ARGS(netdev, chandef, link_id),
+		 unsigned int link_id,
+		 u16 punct_bitmap),
+	TP_ARGS(netdev, chandef, link_id, punct_bitmap),
 	TP_STRUCT__entry(
 		NETDEV_ENTRY
 		CHAN_DEF_ENTRY
 		__field(unsigned int, link_id)
+		__field(u16, punct_bitmap)
 	),
 	TP_fast_assign(
 		NETDEV_ASSIGN;
 		CHAN_DEF_ASSIGN(chandef);
 		__entry->link_id = link_id;
+		__entry->punct_bitmap = punct_bitmap;
 	),
-	TP_printk(NETDEV_PR_FMT ", " CHAN_DEF_PR_FMT ", link:%d",
-		  NETDEV_PR_ARG, CHAN_DEF_PR_ARG, __entry->link_id)
+	TP_printk(NETDEV_PR_FMT ", " CHAN_DEF_PR_FMT ", link:%d, punct_bitmap:%u",
+		  NETDEV_PR_ARG, CHAN_DEF_PR_ARG, __entry->link_id,
+		  __entry->punct_bitmap)
 );
 
 TRACE_EVENT(cfg80211_ch_switch_started_notify,
 	TP_PROTO(struct net_device *netdev,
 		 struct cfg80211_chan_def *chandef,
-		 unsigned int link_id),
-	TP_ARGS(netdev, chandef, link_id),
+		 unsigned int link_id,
+		 u16 punct_bitmap),
+	TP_ARGS(netdev, chandef, link_id, punct_bitmap),
 	TP_STRUCT__entry(
 		NETDEV_ENTRY
 		CHAN_DEF_ENTRY
 		__field(unsigned int, link_id)
+		__field(u16, punct_bitmap)
 	),
 	TP_fast_assign(
 		NETDEV_ASSIGN;
 		CHAN_DEF_ASSIGN(chandef);
 		__entry->link_id = link_id;
+		__entry->punct_bitmap = punct_bitmap;
 	),
-	TP_printk(NETDEV_PR_FMT ", " CHAN_DEF_PR_FMT ", link:%d",
-		  NETDEV_PR_ARG, CHAN_DEF_PR_ARG, __entry->link_id)
+	TP_printk(NETDEV_PR_FMT ", " CHAN_DEF_PR_FMT ", link:%d, punct_bitmap:%u",
+		  NETDEV_PR_ARG, CHAN_DEF_PR_ARG, __entry->link_id,
+		  __entry->punct_bitmap)
 );
 
 TRACE_EVENT(cfg80211_radar_event,
@@ -3324,7 +3331,7 @@
 		NETDEV_ASSIGN;
 		MAC_ASSIGN(addr, addr);
 	),
-	TP_printk(NETDEV_PR_FMT ", " MAC_PR_FMT, NETDEV_PR_ARG, MAC_PR_ARG(addr))
+	TP_printk(NETDEV_PR_FMT ", %pM", NETDEV_PR_ARG, __entry->addr)
 );
 
 DEFINE_EVENT(cfg80211_rx_evt, cfg80211_rx_spurious_frame,
@@ -3351,8 +3358,8 @@
 		MAC_ASSIGN(bssid, bssid);
 		CHAN_ASSIGN(channel);
 	),
-	TP_printk(NETDEV_PR_FMT ", bssid: " MAC_PR_FMT ", " CHAN_PR_FMT,
-		  NETDEV_PR_ARG, MAC_PR_ARG(bssid), CHAN_PR_ARG)
+	TP_printk(NETDEV_PR_FMT ", bssid: %pM, " CHAN_PR_FMT,
+		  NETDEV_PR_ARG, __entry->bssid, CHAN_PR_ARG)
 );
 
 TRACE_EVENT(cfg80211_probe_status,
@@ -3371,8 +3378,8 @@
 		__entry->cookie = cookie;
 		__entry->acked = acked;
 	),
-	TP_printk(NETDEV_PR_FMT " addr:" MAC_PR_FMT ", cookie: %llu, acked: %s",
-		  NETDEV_PR_ARG, MAC_PR_ARG(addr), __entry->cookie,
+	TP_printk(NETDEV_PR_FMT " addr:%pM, cookie: %llu, acked: %s",
+		  NETDEV_PR_ARG, __entry->addr, __entry->cookie,
 		  BOOL_TO_STR(__entry->acked))
 );
 
@@ -3389,8 +3396,8 @@
 		MAC_ASSIGN(peer, peer);
 		__entry->num_packets = num_packets;
 	),
-	TP_printk(NETDEV_PR_FMT ", peer: " MAC_PR_FMT ", num of lost packets: %u",
-		  NETDEV_PR_ARG, MAC_PR_ARG(peer), __entry->num_packets)
+	TP_printk(NETDEV_PR_FMT ", peer: %pM, num of lost packets: %u",
+		  NETDEV_PR_ARG, __entry->peer, __entry->num_packets)
 );
 
 DEFINE_EVENT(cfg80211_netdev_mac_evt, cfg80211_gtk_rekey_notify,
@@ -3414,8 +3421,8 @@
 		MAC_ASSIGN(bssid, bssid);
 		__entry->preauth = preauth;
 	),
-	TP_printk(NETDEV_PR_FMT ", index:%d, bssid: " MAC_PR_FMT ", pre auth: %s",
-		  NETDEV_PR_ARG, __entry->index, MAC_PR_ARG(bssid),
+	TP_printk(NETDEV_PR_FMT ", index:%d, bssid: %pM, pre auth: %s",
+		  NETDEV_PR_ARG, __entry->index, __entry->bssid,
 		  BOOL_TO_STR(__entry->preauth))
 );
 
@@ -3455,8 +3462,8 @@
 		__entry->oper = oper;
 		__entry->reason_code = reason_code;
 	),
-	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", peer: " MAC_PR_FMT ", oper: %d, reason_code %u",
-		  WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(peer), __entry->oper,
+	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", peer: %pM, oper: %d, reason_code %u",
+		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->peer, __entry->oper,
 		  __entry->reason_code)
 	);
 
@@ -3494,10 +3501,10 @@
 			MAC_ASSIGN(tsf_bssid, info->tsf_bssid);
 		}
 	),
-	TP_printk("aborted: %s, scan start (TSF): %llu, tsf_bssid: " MAC_PR_FMT,
+	TP_printk("aborted: %s, scan start (TSF): %llu, tsf_bssid: %pM",
 		  BOOL_TO_STR(__entry->aborted),
 		  (unsigned long long)__entry->scan_start_tsf,
-		  MAC_PR_ARG(tsf_bssid))
+		  __entry->tsf_bssid)
 );
 
 DECLARE_EVENT_CLASS(wiphy_id_evt,
@@ -3546,9 +3553,9 @@
 		__entry->bss_type = bss_type;
 		__entry->privacy = privacy;
 	),
-	TP_printk(WIPHY_PR_FMT ", " CHAN_PR_FMT ", " MAC_PR_FMT
+	TP_printk(WIPHY_PR_FMT ", " CHAN_PR_FMT ", %pM"
 		  ", buf: %#.2x, bss_type: %d, privacy: %d",
-		  WIPHY_PR_ARG, CHAN_PR_ARG, MAC_PR_ARG(bssid),
+		  WIPHY_PR_ARG, CHAN_PR_ARG, __entry->bssid,
 		  ((u8 *)__get_dynamic_array(ssid))[0], __entry->bss_type,
 		  __entry->privacy)
 );
@@ -3579,11 +3586,11 @@
 		MAC_ASSIGN(parent_bssid, data->parent_bssid);
 	),
 	TP_printk(WIPHY_PR_FMT ", " CHAN_PR_FMT
-		  "(scan_width: %d) signal: %d, tsb:%llu, detect_tsf:%llu, tsf_bssid: "
-		  MAC_PR_FMT, WIPHY_PR_ARG, CHAN_PR_ARG, __entry->scan_width,
+		  "(scan_width: %d) signal: %d, tsb:%llu, detect_tsf:%llu, tsf_bssid: %pM",
+		  WIPHY_PR_ARG, CHAN_PR_ARG, __entry->scan_width,
 		  __entry->signal, (unsigned long long)__entry->ts_boottime,
 		  (unsigned long long)__entry->parent_tsf,
-		  MAC_PR_ARG(parent_bssid))
+		  __entry->parent_bssid)
 );
 
 DECLARE_EVENT_CLASS(cfg80211_bss_evt,
@@ -3597,7 +3604,7 @@
 		MAC_ASSIGN(bssid, pub->bssid);
 		CHAN_ASSIGN(pub->channel);
 	),
-	TP_printk(MAC_PR_FMT ", " CHAN_PR_FMT, MAC_PR_ARG(bssid), CHAN_PR_ARG)
+	TP_printk("%pM, " CHAN_PR_FMT, __entry->bssid, CHAN_PR_ARG)
 );
 
 DEFINE_EVENT(cfg80211_bss_evt, cfg80211_return_bss,
@@ -3689,8 +3696,8 @@
 			memcpy(__get_dynamic_array(ric_ies), ft_event->ric_ies,
 			       ft_event->ric_ies_len);
 	),
-	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", target_ap: " MAC_PR_FMT,
-		  WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(target_ap))
+	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", target_ap: %pM",
+		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->target_ap)
 );
 
 TRACE_EVENT(cfg80211_stop_iface,
@@ -3724,10 +3731,10 @@
 		__entry->cookie = cookie;
 		MAC_ASSIGN(addr, addr);
 	),
-	TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", cookie:%lld, " MAC_PR_FMT,
+	TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", cookie:%lld, %pM",
 		  WIPHY_PR_ARG, WDEV_PR_ARG,
 		  (unsigned long long)__entry->cookie,
-		  MAC_PR_ARG(addr))
+		  __entry->addr)
 );
 
 TRACE_EVENT(cfg80211_pmsr_complete,
@@ -3749,20 +3756,30 @@
 );
 
 TRACE_EVENT(cfg80211_update_owe_info_event,
-	    TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
-		     struct cfg80211_update_owe_info *owe_info),
-	    TP_ARGS(wiphy, netdev, owe_info),
-	    TP_STRUCT__entry(WIPHY_ENTRY
-			     NETDEV_ENTRY
-			     MAC_ENTRY(peer)
-			     __dynamic_array(u8, ie, owe_info->ie_len)),
-	    TP_fast_assign(WIPHY_ASSIGN;
-			   NETDEV_ASSIGN;
-			   MAC_ASSIGN(peer, owe_info->peer);
-			   memcpy(__get_dynamic_array(ie), owe_info->ie,
-				  owe_info->ie_len);),
-	    TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", peer: " MAC_PR_FMT,
-		      WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(peer))
+	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
+		 struct cfg80211_update_owe_info *owe_info),
+	TP_ARGS(wiphy, netdev, owe_info),
+	TP_STRUCT__entry(
+		WIPHY_ENTRY
+		NETDEV_ENTRY
+		MAC_ENTRY(peer)
+		__dynamic_array(u8, ie, owe_info->ie_len)
+		__field(int, assoc_link_id)
+		MAC_ENTRY(peer_mld_addr)
+	),
+	TP_fast_assign(
+		WIPHY_ASSIGN;
+		NETDEV_ASSIGN;
+		MAC_ASSIGN(peer, owe_info->peer);
+		memcpy(__get_dynamic_array(ie), owe_info->ie,
+		       owe_info->ie_len);
+		__entry->assoc_link_id = owe_info->assoc_link_id;
+		MAC_ASSIGN(peer_mld_addr, owe_info->peer_mld_addr);
+	),
+	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", peer: %pM,"
+	          " assoc_link_id: %d, peer_mld_addr: %pM",
+		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->peer,
+		  __entry->assoc_link_id, __entry->peer_mld_addr)
 );
 
 TRACE_EVENT(cfg80211_bss_color_notify,
@@ -3800,8 +3817,8 @@
 		MAC_ASSIGN(ap_addr, ap_addr);
 		__entry->timeout = timeout;
 	),
-	TP_printk(WDEV_PR_FMT ", " MAC_PR_FMT ", timeout: %u TUs",
-		  WDEV_PR_ARG, MAC_PR_ARG(ap_addr), __entry->timeout)
+	TP_printk(WDEV_PR_FMT ", %pM, timeout: %u TUs",
+		  WDEV_PR_ARG, __entry->ap_addr, __entry->timeout)
 );
 
 DECLARE_EVENT_CLASS(link_station_add_mod,
@@ -3859,10 +3876,10 @@
 			memcpy(__get_dynamic_array(eht_capa), params->eht_capa,
 			       params->eht_capa_len);
 	),
-	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", station mac: " MAC_PR_FMT
-		  ", link mac: " MAC_PR_FMT ", link id: %u",
-		  WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(mld_mac),
-		  MAC_PR_ARG(link_mac), __entry->link_id)
+	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", station mac: %pM"
+		  ", link mac: %pM, link id: %u",
+		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->mld_mac,
+		  __entry->link_mac, __entry->link_id)
 );
 
 DEFINE_EVENT(link_station_add_mod, rdev_add_link_station,
@@ -3895,9 +3912,9 @@
 			memcpy(__entry->mld_mac, params->mld_mac, 6);
 		__entry->link_id = params->link_id;
 	),
-	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", station mac: " MAC_PR_FMT
+	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", station mac: %pM"
 		  ", link id: %u",
-		  WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(mld_mac),
+		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->mld_mac,
 		  __entry->link_id)
 );
 
diff --git a/net/wireless/util.c b/net/wireless/util.c
index aee2c39..bac788f 100644
--- a/net/wireless/util.c
+++ b/net/wireless/util.c
@@ -986,7 +986,9 @@
 			__cfg80211_leave(wiphy_to_rdev(wdev->wiphy), wdev);
 			break;
 		case EVENT_PORT_AUTHORIZED:
-			__cfg80211_port_authorized(wdev, ev->pa.bssid);
+			__cfg80211_port_authorized(wdev, ev->pa.bssid,
+						   ev->pa.td_bitmap,
+						   ev->pa.td_bitmap_len);
 			break;
 		}
 		wdev_unlock(wdev);
diff --git a/tools/testing/selftests/filesystems/fuse/.gitignore b/tools/testing/selftests/filesystems/fuse/.gitignore
new file mode 100644
index 0000000..3ee9a27
--- /dev/null
+++ b/tools/testing/selftests/filesystems/fuse/.gitignore
@@ -0,0 +1,2 @@
+fuse_test
+*.raw
diff --git a/tools/testing/selftests/filesystems/fuse/Makefile b/tools/testing/selftests/filesystems/fuse/Makefile
new file mode 100644
index 0000000..261d760
--- /dev/null
+++ b/tools/testing/selftests/filesystems/fuse/Makefile
@@ -0,0 +1,34 @@
+# SPDX-License-Identifier: GPL-2.0
+CFLAGS += -D_FILE_OFFSET_BITS=64 -Wall -Werror -I../.. -I../../../../.. -I../../../../include
+LDLIBS := -lpthread -lelf
+TEST_GEN_PROGS := fuse_test fuse_daemon
+TEST_GEN_FILES := \
+	test_bpf.bpf \
+	fd_bpf.bpf \
+	fd.sh \
+
+EXTRA_CLEAN := *.bpf
+BPF_FLAGS = -Wall -Werror -O2 -g -emit-llvm \
+	    -I ../../../../../include \
+	    -idirafter /usr/lib/gcc/x86_64-linux-gnu/10/include \
+	    -idirafter /usr/local/include \
+	    -idirafter /usr/include/x86_64-linux-gnu \
+	    -idirafter /usr/include \
+
+include ../../lib.mk
+
+# Put after include ../../lib.mk since that changes $(TEST_GEN_PROGS)
+# Otherwise you get multiple targets, this becomes the default, and it's a mess
+EXTRA_SOURCES := bpf_loader.c
+$(TEST_GEN_PROGS) : $(EXTRA_SOURCES)
+
+$(OUTPUT)/%.ir: %.c
+	clang $(BPF_FLAGS) -c $< -o $@
+
+$(OUTPUT)/%.bpf: $(OUTPUT)/%.ir
+	llc -march=bpf -filetype=obj -o $@ $<
+
+$(OUTPUT)/fd.sh: fd.txt
+	cp $< $@
+	chmod 755 $@
+
diff --git a/tools/testing/selftests/filesystems/fuse/OWNERS b/tools/testing/selftests/filesystems/fuse/OWNERS
new file mode 100644
index 0000000..5eb371e
--- /dev/null
+++ b/tools/testing/selftests/filesystems/fuse/OWNERS
@@ -0,0 +1,2 @@
+# include OWNERS from the authoritative android-mainline branch
+include kernel/common:android-mainline:/tools/testing/selftests/filesystems/incfs/OWNERS
diff --git a/tools/testing/selftests/filesystems/fuse/bpf_loader.c b/tools/testing/selftests/filesystems/fuse/bpf_loader.c
new file mode 100644
index 0000000..5bf26ea
--- /dev/null
+++ b/tools/testing/selftests/filesystems/fuse/bpf_loader.c
@@ -0,0 +1,791 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright 2021 Google LLC
+ */
+
+#include "test_fuse.h"
+
+#include <dirent.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <gelf.h>
+#include <libelf.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+
+#include <sys/mount.h>
+#include <sys/stat.h>
+#include <sys/statfs.h>
+#include <sys/xattr.h>
+
+#include <linux/unistd.h>
+
+#include <include/uapi/linux/fuse.h>
+#include <include/uapi/linux/bpf.h>
+
+struct _test_options test_options;
+
+struct s s(const char *s1)
+{
+	struct s s = {0};
+
+	if (!s1)
+		return s;
+
+	s.s = malloc(strlen(s1) + 1);
+	if (!s.s)
+		return s;
+
+	strcpy(s.s, s1);
+	return s;
+}
+
+struct s sn(const char *s1, const char *s2)
+{
+	struct s s = {0};
+
+	if (!s1)
+		return s;
+
+	s.s = malloc(s2 - s1 + 1);
+	if (!s.s)
+		return s;
+
+	strncpy(s.s, s1, s2 - s1);
+	s.s[s2 - s1] = 0;
+	return s;
+}
+
+int s_cmp(struct s s1, struct s s2)
+{
+	int result = -1;
+
+	if (!s1.s || !s2.s)
+		goto out;
+	result = strcmp(s1.s, s2.s);
+out:
+	free(s1.s);
+	free(s2.s);
+	return result;
+}
+
+struct s s_cat(struct s s1, struct s s2)
+{
+	struct s s = {0};
+
+	if (!s1.s || !s2.s)
+		goto out;
+
+	s.s = malloc(strlen(s1.s) + strlen(s2.s) + 1);
+	if (!s.s)
+		goto out;
+
+	strcpy(s.s, s1.s);
+	strcat(s.s, s2.s);
+out:
+	free(s1.s);
+	free(s2.s);
+	return s;
+}
+
+struct s s_splitleft(struct s s1, char c)
+{
+	struct s s = {0};
+	char *split;
+
+	if (!s1.s)
+		return s;
+
+	split = strchr(s1.s, c);
+	if (split)
+		s = sn(s1.s, split);
+
+	free(s1.s);
+	return s;
+}
+
+struct s s_splitright(struct s s1, char c)
+{
+	struct s s2 = {0};
+	char *split;
+
+	if (!s1.s)
+		return s2;
+
+	split = strchr(s1.s, c);
+	if (split)
+		s2 = s(split + 1);
+
+	free(s1.s);
+	return s2;
+}
+
+struct s s_word(struct s s1, char c, size_t n)
+{
+	while (n--)
+		s1 = s_splitright(s1, c);
+	return s_splitleft(s1, c);
+}
+
+struct s s_path(struct s s1, struct s s2)
+{
+	return s_cat(s_cat(s1, s("/")), s2);
+}
+
+struct s s_pathn(size_t n, struct s s1, ...)
+{
+	va_list argp;
+
+	va_start(argp, s1);
+	while (--n)
+		s1 = s_path(s1, va_arg(argp, struct s));
+	va_end(argp);
+	return s1;
+}
+
+int s_link(struct s src_pathname, struct s dst_pathname)
+{
+	int res;
+
+	if (src_pathname.s && dst_pathname.s) {
+		res = link(src_pathname.s, dst_pathname.s);
+	} else {
+		res = -1;
+		errno = ENOMEM;
+	}
+
+	free(src_pathname.s);
+	free(dst_pathname.s);
+	return res;
+}
+
+int s_symlink(struct s src_pathname, struct s dst_pathname)
+{
+	int res;
+
+	if (src_pathname.s && dst_pathname.s) {
+		res = symlink(src_pathname.s, dst_pathname.s);
+	} else {
+		res = -1;
+		errno = ENOMEM;
+	}
+
+	free(src_pathname.s);
+	free(dst_pathname.s);
+	return res;
+}
+
+
+int s_mkdir(struct s pathname, mode_t mode)
+{
+	int res;
+
+	if (!pathname.s) {
+		errno = ENOMEM;
+		return -1;
+	}
+
+	res = mkdir(pathname.s, mode);
+	free(pathname.s);
+	return res;
+}
+
+int s_rmdir(struct s pathname)
+{
+	int res;
+
+	if (!pathname.s) {
+		errno = ENOMEM;
+		return -1;
+	}
+
+	res = rmdir(pathname.s);
+	free(pathname.s);
+	return res;
+}
+
+int s_unlink(struct s pathname)
+{
+	int res;
+
+	if (!pathname.s) {
+		errno = ENOMEM;
+		return -1;
+	}
+
+	res = unlink(pathname.s);
+	free(pathname.s);
+	return res;
+}
+
+int s_open(struct s pathname, int flags, ...)
+{
+	va_list ap;
+	int res;
+
+	va_start(ap, flags);
+	if (!pathname.s) {
+		errno = ENOMEM;
+		return -1;
+	}
+
+	if (flags & (O_CREAT | O_TMPFILE))
+		res = open(pathname.s, flags, va_arg(ap, mode_t));
+	else
+		res = open(pathname.s, flags);
+
+	free(pathname.s);
+	va_end(ap);
+	return res;
+}
+
+int s_openat(int dirfd, struct s pathname, int flags, ...)
+{
+	va_list ap;
+	int res;
+
+	va_start(ap, flags);
+	if (!pathname.s) {
+		errno = ENOMEM;
+		return -1;
+	}
+
+	if (flags & (O_CREAT | O_TMPFILE))
+		res = openat(dirfd, pathname.s, flags, va_arg(ap, mode_t));
+	else
+		res = openat(dirfd, pathname.s, flags);
+
+	free(pathname.s);
+	va_end(ap);
+	return res;
+}
+
+int s_creat(struct s pathname, mode_t mode)
+{
+	int res;
+
+	if (!pathname.s) {
+		errno = ENOMEM;
+		return -1;
+	}
+
+	res = open(pathname.s, O_WRONLY | O_CREAT | O_TRUNC | O_CLOEXEC, mode);
+	free(pathname.s);
+	return res;
+}
+
+int s_mkfifo(struct s pathname, mode_t mode)
+{
+	int res;
+
+	if (!pathname.s) {
+		errno = ENOMEM;
+		return -1;
+	}
+
+	res = mknod(pathname.s, S_IFIFO | mode, 0);
+	free(pathname.s);
+	return res;
+}
+
+int s_stat(struct s pathname, struct stat *st)
+{
+	int res;
+
+	if (!pathname.s) {
+		errno = ENOMEM;
+		return -1;
+	}
+
+	res = stat(pathname.s, st);
+	free(pathname.s);
+	return res;
+}
+
+int s_statfs(struct s pathname, struct statfs *st)
+{
+	int res;
+
+	if (!pathname.s) {
+		errno = ENOMEM;
+		return -1;
+	}
+
+	res = statfs(pathname.s, st);
+	free(pathname.s);
+	return res;
+}
+
+DIR *s_opendir(struct s pathname)
+{
+	DIR *res;
+
+	res = opendir(pathname.s);
+	free(pathname.s);
+	return res;
+}
+
+int s_getxattr(struct s pathname, const char name[], void *value, size_t size,
+	       ssize_t *ret_size)
+{
+	if (!pathname.s) {
+		errno = ENOMEM;
+		return -1;
+	}
+
+	*ret_size = getxattr(pathname.s, name, value, size);
+	free(pathname.s);
+	return *ret_size >= 0 ? 0 : -1;
+}
+
+int s_listxattr(struct s pathname, void *list, size_t size, ssize_t *ret_size)
+{
+	if (!pathname.s) {
+		errno = ENOMEM;
+		return -1;
+	}
+
+	*ret_size = listxattr(pathname.s, list, size);
+	free(pathname.s);
+	return *ret_size >= 0 ? 0 : -1;
+}
+
+int s_setxattr(struct s pathname, const char name[], const void *value, size_t size, int flags)
+{
+	int res;
+
+	if (!pathname.s) {
+		errno = ENOMEM;
+		return -1;
+	}
+
+	res = setxattr(pathname.s, name, value, size, flags);
+	free(pathname.s);
+	return res;
+}
+
+int s_removexattr(struct s pathname, const char name[])
+{
+	int res;
+
+	if (!pathname.s) {
+		errno = ENOMEM;
+		return -1;
+	}
+
+	res = removexattr(pathname.s, name);
+	free(pathname.s);
+	return res;
+}
+
+int s_rename(struct s oldpathname, struct s newpathname)
+{
+	int res;
+
+	if (!oldpathname.s || !newpathname.s) {
+		errno = ENOMEM;
+		return -1;
+	}
+
+	res = rename(oldpathname.s, newpathname.s);
+	free(oldpathname.s);
+	free(newpathname.s);
+	return res;
+}
+
+int s_fuse_attr(struct s pathname, struct fuse_attr *fuse_attr_out)
+{
+
+	struct stat st;
+	int result = TEST_FAILURE;
+
+	TESTSYSCALL(s_stat(pathname, &st));
+
+	fuse_attr_out->ino = st.st_ino;
+	fuse_attr_out->mode = st.st_mode;
+	fuse_attr_out->nlink = st.st_nlink;
+	fuse_attr_out->uid = st.st_uid;
+	fuse_attr_out->gid = st.st_gid;
+	fuse_attr_out->rdev = st.st_rdev;
+	fuse_attr_out->size = st.st_size;
+	fuse_attr_out->blksize = st.st_blksize;
+	fuse_attr_out->blocks = st.st_blocks;
+	fuse_attr_out->atime = st.st_atime;
+	fuse_attr_out->mtime = st.st_mtime;
+	fuse_attr_out->ctime = st.st_ctime;
+	fuse_attr_out->atimensec = UINT32_MAX;
+	fuse_attr_out->mtimensec = UINT32_MAX;
+	fuse_attr_out->ctimensec = UINT32_MAX;
+
+	result = TEST_SUCCESS;
+out:
+	return result;
+}
+
+struct s tracing_folder(void)
+{
+	struct s trace = {0};
+	FILE *mounts = NULL;
+	char *line = NULL;
+	size_t size = 0;
+
+	TEST(mounts = fopen("/proc/mounts", "re"), mounts);
+	while (getline(&line, &size, mounts) != -1) {
+		if (!s_cmp(s_word(sn(line, line + size), ' ', 2),
+			   s("tracefs"))) {
+			trace = s_word(sn(line, line + size), ' ', 1);
+			break;
+		}
+
+		if (!s_cmp(s_word(sn(line, line + size), ' ', 2), s("debugfs")))
+			trace = s_path(s_word(sn(line, line + size), ' ', 1),
+				       s("tracing"));
+	}
+
+out:
+	free(line);
+	fclose(mounts);
+	return trace;
+}
+
+int tracing_on(void)
+{
+	int result = TEST_FAILURE;
+	int tracing_on = -1;
+
+	TEST(tracing_on = s_open(s_path(tracing_folder(), s("tracing_on")),
+				 O_WRONLY | O_CLOEXEC),
+	     tracing_on != -1);
+	TESTEQUAL(write(tracing_on, "1", 1), 1);
+	result = TEST_SUCCESS;
+out:
+	close(tracing_on);
+	return result;
+}
+
+char *concat_file_name(const char *dir, const char *file)
+{
+	char full_name[FILENAME_MAX] = "";
+
+	if (snprintf(full_name, ARRAY_SIZE(full_name), "%s/%s", dir, file) < 0)
+		return NULL;
+	return strdup(full_name);
+}
+
+char *setup_mount_dir(const char *name)
+{
+	struct stat st;
+	char *current_dir = getcwd(NULL, 0);
+	char *mount_dir = concat_file_name(current_dir, name);
+
+	free(current_dir);
+	if (stat(mount_dir, &st) == 0) {
+		if (S_ISDIR(st.st_mode))
+			return mount_dir;
+
+		ksft_print_msg("%s is a file, not a dir.\n", mount_dir);
+		return NULL;
+	}
+
+	if (mkdir(mount_dir, 0777)) {
+		ksft_print_msg("Can't create mount dir.");
+		return NULL;
+	}
+
+	return mount_dir;
+}
+
+int delete_dir_tree(const char *dir_path, bool remove_root)
+{
+	DIR *dir = NULL;
+	struct dirent *dp;
+	int result = 0;
+
+	dir = opendir(dir_path);
+	if (!dir) {
+		result = -errno;
+		goto out;
+	}
+
+	while ((dp = readdir(dir))) {
+		char *full_path;
+
+		if (!strcmp(dp->d_name, ".") || !strcmp(dp->d_name, ".."))
+			continue;
+
+		full_path = concat_file_name(dir_path, dp->d_name);
+		if (dp->d_type == DT_DIR)
+			result = delete_dir_tree(full_path, true);
+		else
+			result = unlink(full_path);
+		free(full_path);
+		if (result)
+			goto out;
+	}
+
+out:
+	if (dir)
+		closedir(dir);
+	if (!result && remove_root)
+		rmdir(dir_path);
+	return result;
+}
+
+static int mount_fuse_maybe_init(const char *mount_dir, int bpf_fd, int dir_fd,
+			     int *fuse_dev_ptr, bool init)
+{
+	int result = TEST_FAILURE;
+	int fuse_dev = -1;
+	char options[FILENAME_MAX];
+	uint8_t bytes_in[FUSE_MIN_READ_BUFFER];
+	uint8_t bytes_out[FUSE_MIN_READ_BUFFER];
+
+	DECL_FUSE_IN(init);
+
+	TEST(fuse_dev = open("/dev/fuse", O_RDWR | O_CLOEXEC), fuse_dev != -1);
+	snprintf(options, FILENAME_MAX, "fd=%d,user_id=0,group_id=0,rootmode=0040000",
+		 fuse_dev);
+	if (bpf_fd != -1)
+		snprintf(options + strlen(options),
+			 sizeof(options) - strlen(options),
+			 ",root_bpf=%d", bpf_fd);
+	if (dir_fd != -1)
+		snprintf(options + strlen(options),
+			 sizeof(options) - strlen(options),
+			 ",root_dir=%d", dir_fd);
+	TESTSYSCALL(mount("ABC", mount_dir, "fuse", 0, options));
+
+	if (init) {
+		TESTFUSEIN(FUSE_INIT, init_in);
+		TESTEQUAL(init_in->major, FUSE_KERNEL_VERSION);
+		TESTEQUAL(init_in->minor, FUSE_KERNEL_MINOR_VERSION);
+		TESTFUSEOUT1(fuse_init_out, ((struct fuse_init_out) {
+			.major = FUSE_KERNEL_VERSION,
+			.minor = FUSE_KERNEL_MINOR_VERSION,
+			.max_readahead = 4096,
+			.flags = 0,
+			.max_background = 0,
+			.congestion_threshold = 0,
+			.max_write = 4096,
+			.time_gran = 1000,
+			.max_pages = 12,
+			.map_alignment = 4096,
+		}));
+	}
+
+	*fuse_dev_ptr = fuse_dev;
+	fuse_dev = -1;
+	result = TEST_SUCCESS;
+out:
+	close(fuse_dev);
+	return result;
+}
+
+int mount_fuse(const char *mount_dir, int bpf_fd, int dir_fd, int *fuse_dev_ptr)
+{
+	return mount_fuse_maybe_init(mount_dir, bpf_fd, dir_fd, fuse_dev_ptr,
+				     true);
+}
+
+int mount_fuse_no_init(const char *mount_dir, int bpf_fd, int dir_fd,
+		       int *fuse_dev_ptr)
+{
+	return mount_fuse_maybe_init(mount_dir, bpf_fd, dir_fd, fuse_dev_ptr,
+				     false);
+}
+
+struct fuse_bpf_map {
+	unsigned int map_type;
+	size_t key_size;
+	size_t value_size;
+	unsigned int max_entries;
+};
+
+static int install_maps(Elf_Data *maps, int maps_index, Elf *elf,
+			Elf_Data *symbols, int symbol_index,
+			struct map_relocation **mr, size_t *map_count)
+{
+	int result = TEST_FAILURE;
+	int i;
+	GElf_Sym symbol;
+
+	TESTNE((void *)symbols, NULL);
+
+	for (i = 0; i < symbols->d_size / sizeof(symbol); ++i) {
+		TESTNE((void *)gelf_getsym(symbols, i, &symbol), 0);
+		if (symbol.st_shndx == maps_index) {
+			struct fuse_bpf_map *map;
+			union bpf_attr attr;
+			int map_fd;
+
+			map = (struct fuse_bpf_map *)
+				((char *)maps->d_buf + symbol.st_value);
+
+			attr = (union bpf_attr) {
+				.map_type = map->map_type,
+				.key_size = map->key_size,
+				.value_size = map->value_size,
+				.max_entries = map->max_entries,
+			};
+
+			TEST(*mr = realloc(*mr, ++*map_count *
+					   sizeof(struct fuse_bpf_map)),
+			     *mr);
+			TEST(map_fd = syscall(__NR_bpf, BPF_MAP_CREATE,
+					      &attr, sizeof(attr)),
+			     map_fd != -1);
+			(*mr)[*map_count - 1] = (struct map_relocation) {
+				.name = strdup(elf_strptr(elf, symbol_index,
+							  symbol.st_name)),
+				.fd = map_fd,
+				.value = symbol.st_value,
+			};
+		}
+	}
+
+	result = TEST_SUCCESS;
+out:
+	return result;
+}
+
+static inline int relocate_maps(GElf_Shdr *rel_header, Elf_Data *rel_data,
+			 Elf_Data *prog_data, Elf_Data *symbol_data,
+			 struct map_relocation *map_relocations,
+			 size_t map_count)
+{
+	int result = TEST_FAILURE;
+	int i;
+	struct bpf_insn *insns = (struct bpf_insn *) prog_data->d_buf;
+
+	for (i = 0; i < rel_header->sh_size / rel_header->sh_entsize; ++i) {
+		GElf_Sym sym;
+		GElf_Rel rel;
+		unsigned int insn_idx;
+		int map_idx;
+
+		gelf_getrel(rel_data, i, &rel);
+		insn_idx = rel.r_offset / sizeof(struct bpf_insn);
+		insns[insn_idx].src_reg = BPF_PSEUDO_MAP_FD;
+
+		gelf_getsym(symbol_data, GELF_R_SYM(rel.r_info), &sym);
+		for (map_idx = 0; map_idx < map_count; map_idx++) {
+			if (map_relocations[map_idx].value == sym.st_value) {
+				insns[insn_idx].imm =
+					map_relocations[map_idx].fd;
+				break;
+			}
+		}
+		TESTNE(map_idx, map_count);
+	}
+
+	result = TEST_SUCCESS;
+out:
+	return result;
+}
+
+int install_elf_bpf(const char *file, const char *section, int *fd,
+		    struct map_relocation **map_relocations, size_t *map_count)
+{
+	int result = TEST_FAILURE;
+	char path[PATH_MAX] = {};
+	char *last_slash;
+	int filter_fd = -1;
+	union bpf_attr bpf_attr;
+	static char log[1 << 20];
+	Elf *elf = NULL;
+	GElf_Ehdr ehdr;
+	Elf_Data *data_prog = NULL, *data_maps = NULL, *data_symbols = NULL;
+	int maps_index, symbol_index, prog_index;
+	int i;
+	int bpf_prog_type_fuse_fd = -1;
+	char buffer[10] = {0};
+	int bpf_prog_type_fuse;
+
+	TESTNE(readlink("/proc/self/exe", path, PATH_MAX), -1);
+	TEST(last_slash = strrchr(path, '/'), last_slash);
+	strcpy(last_slash + 1, file);
+	TEST(filter_fd = open(path, O_RDONLY | O_CLOEXEC), filter_fd != -1);
+	TESTNE(elf_version(EV_CURRENT), EV_NONE);
+	TEST(elf = elf_begin(filter_fd, ELF_C_READ, NULL), elf);
+	TESTEQUAL((void *) gelf_getehdr(elf, &ehdr), &ehdr);
+	for (i = 1; i < ehdr.e_shnum; i++) {
+		char *shname;
+		GElf_Shdr shdr;
+		Elf_Scn *scn;
+
+		TEST(scn = elf_getscn(elf, i), scn);
+		TESTEQUAL((void *)gelf_getshdr(scn, &shdr), &shdr);
+		TEST(shname = elf_strptr(elf, ehdr.e_shstrndx, shdr.sh_name),
+		     shname);
+
+		if (!strcmp(shname, "maps")) {
+			TEST(data_maps = elf_getdata(scn, 0), data_maps);
+			maps_index = i;
+		} else if (shdr.sh_type == SHT_SYMTAB) {
+			TEST(data_symbols = elf_getdata(scn, 0), data_symbols);
+			symbol_index = shdr.sh_link;
+		} else if (!strcmp(shname, section)) {
+			TEST(data_prog = elf_getdata(scn, 0), data_prog);
+			prog_index = i;
+		}
+	}
+	TESTNE((void *) data_prog, NULL);
+
+	if (data_maps)
+		TESTEQUAL(install_maps(data_maps, maps_index, elf,
+				       data_symbols, symbol_index,
+				       map_relocations, map_count), 0);
+
+	/* Now relocate maps */
+	for (i = 1; i < ehdr.e_shnum; i++) {
+		GElf_Shdr rel_header;
+		Elf_Scn *scn;
+		Elf_Data *rel_data;
+
+		TEST(scn = elf_getscn(elf, i), scn);
+		TESTEQUAL((void *)gelf_getshdr(scn, &rel_header),
+			&rel_header);
+		if (rel_header.sh_type != SHT_REL)
+			continue;
+		TEST(rel_data = elf_getdata(scn, 0), rel_data);
+
+		if (rel_header.sh_info != prog_index)
+			continue;
+		TESTEQUAL(relocate_maps(&rel_header, rel_data,
+					data_prog, data_symbols,
+					*map_relocations, *map_count),
+			  0);
+	}
+
+	TEST(bpf_prog_type_fuse_fd = open("/sys/fs/fuse/bpf_prog_type_fuse",
+					  O_RDONLY | O_CLOEXEC),
+	     bpf_prog_type_fuse_fd != -1);
+	TESTGE(read(bpf_prog_type_fuse_fd, buffer, sizeof(buffer)), 1);
+	TEST(bpf_prog_type_fuse = strtol(buffer, NULL, 10),
+	     bpf_prog_type_fuse != 0);
+
+	bpf_attr = (union bpf_attr) {
+		.prog_type = bpf_prog_type_fuse,
+		.insn_cnt = data_prog->d_size / 8,
+		.insns = ptr_to_u64(data_prog->d_buf),
+		.license = ptr_to_u64("GPL"),
+		.log_buf = test_options.verbose ? ptr_to_u64(log) : 0,
+		.log_size = test_options.verbose ? sizeof(log) : 0,
+		.log_level = test_options.verbose ? 2 : 0,
+	};
+	*fd = syscall(__NR_bpf, BPF_PROG_LOAD, &bpf_attr, sizeof(bpf_attr));
+	if (test_options.verbose)
+		ksft_print_msg("%s\n", log);
+	if (*fd == -1 && errno == ENOSPC)
+		ksft_print_msg("bpf log size too small!\n");
+	TESTNE(*fd, -1);
+
+	result = TEST_SUCCESS;
+out:
+	close(filter_fd);
+	close(bpf_prog_type_fuse_fd);
+	return result;
+}
+
+
diff --git a/tools/testing/selftests/filesystems/fuse/fd.txt b/tools/testing/selftests/filesystems/fuse/fd.txt
new file mode 100644
index 0000000..15ce771
--- /dev/null
+++ b/tools/testing/selftests/filesystems/fuse/fd.txt
@@ -0,0 +1,21 @@
+fuse_daemon $*
+cd fd-dst
+ls
+cd show
+ls
+fsstress -s 123 -d . -p 4 -n 100 -l5
+echo test > wibble
+ls
+cat wibble
+fallocate -l 1000 wobble
+mkdir testdir
+mkdir tmpdir
+rmdir tmpdir
+touch tmp
+mv tmp tmp2
+rm tmp2
+
+# FUSE_LINK
+echo "ln_src contents" > ln_src
+ln ln_src ln_link
+cat ln_link
diff --git a/tools/testing/selftests/filesystems/fuse/fd_bpf.c b/tools/testing/selftests/filesystems/fuse/fd_bpf.c
new file mode 100644
index 0000000..3cd82d6
--- /dev/null
+++ b/tools/testing/selftests/filesystems/fuse/fd_bpf.c
@@ -0,0 +1,252 @@
+// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
+// Copyright (c) 2021 Google LLC
+
+#include "test_fuse_bpf.h"
+
+SEC("maps") struct fuse_bpf_map test_map = {
+	BPF_MAP_TYPE_ARRAY,
+	sizeof(uint32_t),
+	sizeof(uint32_t),
+	1000,
+};
+
+SEC("maps") struct fuse_bpf_map test_map2 = {
+	BPF_MAP_TYPE_HASH,
+	sizeof(uint32_t),
+	sizeof(uint64_t),
+	76,
+};
+
+SEC("test_daemon") int trace_daemon(struct fuse_bpf_args *fa)
+{
+	uint64_t uid_gid = bpf_get_current_uid_gid();
+	uint32_t uid = uid_gid & 0xffffffff;
+	uint64_t pid_tgid = bpf_get_current_pid_tgid();
+	uint32_t pid = pid_tgid & 0xffffffff;
+	uint32_t key = 23;
+	uint32_t *pvalue;
+
+	pvalue = bpf_map_lookup_elem(&test_map, &key);
+	if (pvalue) {
+		uint32_t value = *pvalue;
+
+		bpf_printk("pid %u uid %u value %u", pid, uid, value);
+		value++;
+		bpf_map_update_elem(&test_map, &key,  &value, BPF_ANY);
+	}
+
+	switch (fa->opcode) {
+	case FUSE_ACCESS | FUSE_PREFILTER: {
+		bpf_printk("Access: %d", fa->nodeid);
+		return FUSE_BPF_BACKING;
+	}
+
+	case FUSE_GETATTR | FUSE_PREFILTER: {
+		const struct fuse_getattr_in *fgi = fa->in_args[0].value;
+
+		bpf_printk("Get Attr %d", fgi->fh);
+		return FUSE_BPF_BACKING;
+	}
+
+	case FUSE_SETATTR | FUSE_PREFILTER: {
+		const struct fuse_setattr_in *fsi = fa->in_args[0].value;
+
+		bpf_printk("Set Attr %d", fsi->fh);
+		return FUSE_BPF_BACKING;
+	}
+
+	case FUSE_OPENDIR | FUSE_PREFILTER: {
+		bpf_printk("Open Dir: %d", fa->nodeid);
+		return FUSE_BPF_BACKING;
+	}
+
+	case FUSE_READDIR | FUSE_PREFILTER: {
+		const struct fuse_read_in *fri = fa->in_args[0].value;
+
+		bpf_printk("Read Dir: fh: %lu", fri->fh, fri->offset);
+		return FUSE_BPF_BACKING;
+	}
+
+	case FUSE_LOOKUP | FUSE_PREFILTER: {
+		const char *name = fa->in_args[0].value;
+
+		bpf_printk("Lookup: %lx %s", fa->nodeid, name);
+		if (fa->nodeid == 1)
+			return FUSE_BPF_USER_FILTER | FUSE_BPF_BACKING;
+		else
+			return FUSE_BPF_BACKING;
+	}
+
+	case FUSE_MKNOD | FUSE_PREFILTER: {
+		const struct fuse_mknod_in *fmi = fa->in_args[0].value;
+		const char *name = fa->in_args[1].value;
+
+		bpf_printk("mknod %s %x %x", name,  fmi->rdev | fmi->mode, fmi->umask);
+		return FUSE_BPF_BACKING;
+	}
+
+	case FUSE_MKDIR | FUSE_PREFILTER: {
+		const struct fuse_mkdir_in *fmi = fa->in_args[0].value;
+		const char *name = fa->in_args[1].value;
+
+		bpf_printk("mkdir: %s %x %x", name, fmi->mode, fmi->umask);
+		return FUSE_BPF_BACKING;
+	}
+
+	case FUSE_RMDIR | FUSE_PREFILTER: {
+		const char *name = fa->in_args[0].value;
+
+		bpf_printk("rmdir: %s", name);
+		return FUSE_BPF_BACKING;
+	}
+
+	case FUSE_RENAME | FUSE_PREFILTER: {
+		const char *oldname = fa->in_args[1].value;
+		const char *newname = fa->in_args[2].value;
+
+		bpf_printk("rename from %s", oldname);
+		bpf_printk("rename to %s", newname);
+		return FUSE_BPF_BACKING;
+	}
+
+	case FUSE_RENAME2 | FUSE_PREFILTER: {
+		const struct fuse_rename2_in *fri = fa->in_args[0].value;
+		uint32_t flags = fri->flags;
+		const char *oldname = fa->in_args[1].value;
+		const char *newname = fa->in_args[2].value;
+
+		bpf_printk("rename(%x) from %s", flags, oldname);
+		bpf_printk("rename to %s", newname);
+		return FUSE_BPF_BACKING;
+	}
+
+	case FUSE_UNLINK | FUSE_PREFILTER: {
+		const char *name = fa->in_args[0].value;
+
+		bpf_printk("unlink: %s", name);
+		return FUSE_BPF_BACKING;
+	}
+
+	case FUSE_LINK | FUSE_PREFILTER: {
+		const struct fuse_link_in *fli = fa->in_args[0].value;
+		const char *dst_name = fa->in_args[1].value;
+
+		bpf_printk("Link: %d %s", fli->oldnodeid, dst_name);
+		return FUSE_BPF_BACKING;
+	}
+
+	case FUSE_SYMLINK | FUSE_PREFILTER: {
+		const char *link_name = fa->in_args[0].value;
+		const char *link_dest = fa->in_args[1].value;
+
+		bpf_printk("symlink from %s", link_name);
+		bpf_printk("symlink to %s", link_dest);
+		return FUSE_BPF_BACKING;
+	}
+
+	case FUSE_READLINK | FUSE_PREFILTER: {
+		const char *link_name = fa->in_args[0].value;
+
+		bpf_printk("readlink from %s", link_name);
+		return FUSE_BPF_BACKING;
+	}
+
+	case FUSE_RELEASE | FUSE_PREFILTER: {
+		const struct fuse_release_in *fri = fa->in_args[0].value;
+
+		bpf_printk("Release: %d", fri->fh);
+		return FUSE_BPF_BACKING;
+	}
+
+	case FUSE_RELEASEDIR | FUSE_PREFILTER: {
+		const struct fuse_release_in *fri = fa->in_args[0].value;
+
+		bpf_printk("Release Dir: %d", fri->fh);
+		return FUSE_BPF_BACKING;
+	}
+
+	case FUSE_CREATE | FUSE_PREFILTER: {
+		bpf_printk("Create %s", fa->in_args[1].value);
+		return FUSE_BPF_BACKING;
+	}
+
+	case FUSE_OPEN | FUSE_PREFILTER: {
+		bpf_printk("Open: %d", fa->nodeid);
+		return FUSE_BPF_BACKING;
+	}
+
+	case FUSE_READ | FUSE_PREFILTER: {
+		const struct fuse_read_in *fri = fa->in_args[0].value;
+
+		bpf_printk("Read: fh: %lu, offset %lu, size %lu",
+			   fri->fh, fri->offset, fri->size);
+		return FUSE_BPF_BACKING;
+	}
+
+	case FUSE_WRITE | FUSE_PREFILTER: {
+		const struct fuse_write_in *fwi = fa->in_args[0].value;
+
+		bpf_printk("Write: fh: %lu, offset %lu, size %lu",
+			   fwi->fh, fwi->offset, fwi->size);
+		return FUSE_BPF_BACKING;
+	}
+
+	case FUSE_FLUSH | FUSE_PREFILTER: {
+		const struct fuse_flush_in *ffi = fa->in_args[0].value;
+
+		bpf_printk("Flush %d", ffi->fh);
+		return FUSE_BPF_BACKING;
+	}
+
+	case FUSE_FALLOCATE | FUSE_PREFILTER: {
+		const struct fuse_fallocate_in *ffa = fa->in_args[0].value;
+
+		bpf_printk("Fallocate %d %lu", ffa->fh, ffa->length);
+		return FUSE_BPF_BACKING;
+	}
+
+	case FUSE_GETXATTR | FUSE_PREFILTER: {
+		const char *name = fa->in_args[1].value;
+
+		bpf_printk("Getxattr %d %s", fa->nodeid, name);
+		return FUSE_BPF_BACKING;
+	}
+
+	case FUSE_LISTXATTR | FUSE_PREFILTER: {
+		const char *name = fa->in_args[1].value;
+
+		bpf_printk("Listxattr %d %s", fa->nodeid, name);
+		return FUSE_BPF_BACKING;
+	}
+
+	case FUSE_SETXATTR | FUSE_PREFILTER: {
+		const char *name = fa->in_args[1].value;
+
+		bpf_printk("Setxattr %d %s", fa->nodeid, name);
+		return FUSE_BPF_BACKING;
+	}
+
+	case FUSE_STATFS | FUSE_PREFILTER: {
+		bpf_printk("statfs %d", fa->nodeid);
+		return FUSE_BPF_BACKING;
+	}
+
+	case FUSE_LSEEK | FUSE_PREFILTER: {
+		const struct fuse_lseek_in *fli = fa->in_args[0].value;
+
+		bpf_printk("lseek type:%d, offset:%lld", fli->whence, fli->offset);
+		return FUSE_BPF_BACKING;
+	}
+
+	default:
+		if (fa->opcode & FUSE_PREFILTER)
+			bpf_printk("prefilter *** UNKNOWN *** opcode: %d",
+				   fa->opcode & FUSE_OPCODE_FILTER);
+		else if (fa->opcode & FUSE_POSTFILTER)
+			bpf_printk("postfilter *** UNKNOWN *** opcode: %d",
+				   fa->opcode & FUSE_OPCODE_FILTER);
+		else
+			bpf_printk("*** UNKNOWN *** opcode: %d", fa->opcode);
+		return FUSE_BPF_BACKING;
+	}
+}
diff --git a/tools/testing/selftests/filesystems/fuse/fuse_daemon.c b/tools/testing/selftests/filesystems/fuse/fuse_daemon.c
new file mode 100644
index 0000000..1b6f8c2a
--- /dev/null
+++ b/tools/testing/selftests/filesystems/fuse/fuse_daemon.c
@@ -0,0 +1,294 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright 2021 Google LLC
+ */
+
+#include "test_fuse.h"
+
+#include <errno.h>
+#include <fcntl.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+
+#include <sys/mount.h>
+#include <sys/stat.h>
+#include <sys/wait.h>
+
+#include <linux/unistd.h>
+
+#include <include/uapi/linux/fuse.h>
+#include <include/uapi/linux/bpf.h>
+
+bool user_messages;
+bool kernel_messages;
+
+static int display_trace(void)
+{
+	int pid = -1;
+	int tp = -1;
+	char c;
+	ssize_t bytes_read;
+	static char line[256] = {0};
+
+	if (!kernel_messages)
+		return TEST_SUCCESS;
+
+	TEST(pid = fork(), pid != -1);
+	if (pid != 0)
+		return pid;
+
+	TESTEQUAL(tracing_on(), 0);
+	TEST(tp = s_open(s_path(tracing_folder(), s("trace_pipe")),
+			 O_RDONLY | O_CLOEXEC), tp != -1);
+	for (;;) {
+		TEST(bytes_read = read(tp, &c, sizeof(c)),
+		     bytes_read == 1);
+		if (c == '\n') {
+			printf("%s\n", line);
+			line[0] = 0;
+		} else
+			sprintf(line + strlen(line), "%c", c);
+	}
+out:
+	if (pid == 0) {
+		close(tp);
+		exit(TEST_FAILURE);
+	}
+	return pid;
+}
+
+static const char *fuse_opcode_to_string(int opcode)
+{
+	switch (opcode & FUSE_OPCODE_FILTER) {
+	case FUSE_LOOKUP:
+		return "FUSE_LOOKUP";
+	case FUSE_FORGET:
+		return "FUSE_FORGET";
+	case FUSE_GETATTR:
+		return "FUSE_GETATTR";
+	case FUSE_SETATTR:
+		return "FUSE_SETATTR";
+	case FUSE_READLINK:
+		return "FUSE_READLINK";
+	case FUSE_SYMLINK:
+		return "FUSE_SYMLINK";
+	case FUSE_MKNOD:
+		return "FUSE_MKNOD";
+	case FUSE_MKDIR:
+		return "FUSE_MKDIR";
+	case FUSE_UNLINK:
+		return "FUSE_UNLINK";
+	case FUSE_RMDIR:
+		return "FUSE_RMDIR";
+	case FUSE_RENAME:
+		return "FUSE_RENAME";
+	case FUSE_LINK:
+		return "FUSE_LINK";
+	case FUSE_OPEN:
+		return "FUSE_OPEN";
+	case FUSE_READ:
+		return "FUSE_READ";
+	case FUSE_WRITE:
+		return "FUSE_WRITE";
+	case FUSE_STATFS:
+		return "FUSE_STATFS";
+	case FUSE_RELEASE:
+		return "FUSE_RELEASE";
+	case FUSE_FSYNC:
+		return "FUSE_FSYNC";
+	case FUSE_SETXATTR:
+		return "FUSE_SETXATTR";
+	case FUSE_GETXATTR:
+		return "FUSE_GETXATTR";
+	case FUSE_LISTXATTR:
+		return "FUSE_LISTXATTR";
+	case FUSE_REMOVEXATTR:
+		return "FUSE_REMOVEXATTR";
+	case FUSE_FLUSH:
+		return "FUSE_FLUSH";
+	case FUSE_INIT:
+		return "FUSE_INIT";
+	case FUSE_OPENDIR:
+		return "FUSE_OPENDIR";
+	case FUSE_READDIR:
+		return "FUSE_READDIR";
+	case FUSE_RELEASEDIR:
+		return "FUSE_RELEASEDIR";
+	case FUSE_FSYNCDIR:
+		return "FUSE_FSYNCDIR";
+	case FUSE_GETLK:
+		return "FUSE_GETLK";
+	case FUSE_SETLK:
+		return "FUSE_SETLK";
+	case FUSE_SETLKW:
+		return "FUSE_SETLKW";
+	case FUSE_ACCESS:
+		return "FUSE_ACCESS";
+	case FUSE_CREATE:
+		return "FUSE_CREATE";
+	case FUSE_INTERRUPT:
+		return "FUSE_INTERRUPT";
+	case FUSE_BMAP:
+		return "FUSE_BMAP";
+	case FUSE_DESTROY:
+		return "FUSE_DESTROY";
+	case FUSE_IOCTL:
+		return "FUSE_IOCTL";
+	case FUSE_POLL:
+		return "FUSE_POLL";
+	case FUSE_NOTIFY_REPLY:
+		return "FUSE_NOTIFY_REPLY";
+	case FUSE_BATCH_FORGET:
+		return "FUSE_BATCH_FORGET";
+	case FUSE_FALLOCATE:
+		return "FUSE_FALLOCATE";
+	case FUSE_READDIRPLUS:
+		return "FUSE_READDIRPLUS";
+	case FUSE_RENAME2:
+		return "FUSE_RENAME2";
+	case FUSE_LSEEK:
+		return "FUSE_LSEEK";
+	case FUSE_COPY_FILE_RANGE:
+		return "FUSE_COPY_FILE_RANGE";
+	case FUSE_SETUPMAPPING:
+		return "FUSE_SETUPMAPPING";
+	case FUSE_REMOVEMAPPING:
+		return "FUSE_REMOVEMAPPING";
+	//case FUSE_SYNCFS:
+	//	return "FUSE_SYNCFS";
+	case CUSE_INIT:
+		return "CUSE_INIT";
+	case CUSE_INIT_BSWAP_RESERVED:
+		return "CUSE_INIT_BSWAP_RESERVED";
+	case FUSE_INIT_BSWAP_RESERVED:
+		return "FUSE_INIT_BSWAP_RESERVED";
+	}
+	return "?";
+}
+
+static int parse_options(int argc, char *const *argv)
+{
+	signed char c;
+
+	while ((c = getopt(argc, argv, "kuv")) != -1)
+		switch (c) {
+		case 'v':
+			test_options.verbose = true;
+			break;
+
+		case 'u':
+			user_messages = true;
+			break;
+
+		case 'k':
+			kernel_messages = true;
+			break;
+
+		default:
+			return -EINVAL;
+		}
+
+	return 0;
+}
+
+int main(int argc, char *argv[])
+{
+	int result = TEST_FAILURE;
+	int trace_pid = -1;
+	char *mount_dir = NULL;
+	char *src_dir = NULL;
+	int bpf_fd = -1;
+	int src_fd = -1;
+	int fuse_dev = -1;
+	struct map_relocation *map_relocations = NULL;
+	size_t map_count = 0;
+	int i;
+
+	if (geteuid() != 0)
+		ksft_print_msg("Not a root, might fail to mount.\n");
+	TESTEQUAL(parse_options(argc, argv), 0);
+
+	TEST(trace_pid = display_trace(), trace_pid != -1);
+
+	delete_dir_tree("fd-src", true);
+	TEST(src_dir = setup_mount_dir("fd-src"), src_dir);
+	delete_dir_tree("fd-dst", true);
+	TEST(mount_dir = setup_mount_dir("fd-dst"), mount_dir);
+
+	TESTEQUAL(install_elf_bpf("fd_bpf.bpf", "test_daemon", &bpf_fd,
+				  &map_relocations, &map_count), 0);
+
+	TEST(src_fd = open("fd-src", O_DIRECTORY | O_RDONLY | O_CLOEXEC),
+	     src_fd != -1);
+	TESTSYSCALL(mkdirat(src_fd, "show", 0777));
+	TESTSYSCALL(mkdirat(src_fd, "hide", 0777));
+
+	for (i = 0; i < map_count; ++i)
+		if (!strcmp(map_relocations[i].name, "test_map")) {
+			uint32_t key = 23;
+			uint32_t value = 1234;
+			union bpf_attr attr = {
+				.map_fd = map_relocations[i].fd,
+				.key    = ptr_to_u64(&key),
+				.value  = ptr_to_u64(&value),
+				.flags  = BPF_ANY,
+			};
+			TESTSYSCALL(syscall(__NR_bpf, BPF_MAP_UPDATE_ELEM,
+					    &attr, sizeof(attr)));
+		}
+
+	TESTEQUAL(mount_fuse(mount_dir, bpf_fd, src_fd, &fuse_dev), 0);
+
+	if (fork())
+		return 0;
+
+	for (;;) {
+		uint8_t bytes_in[FUSE_MIN_READ_BUFFER];
+		uint8_t bytes_out[FUSE_MIN_READ_BUFFER] __maybe_unused;
+		struct fuse_in_header *in_header =
+			(struct fuse_in_header *)bytes_in;
+		ssize_t res = read(fuse_dev, bytes_in, sizeof(bytes_in));
+
+		if (res == -1)
+			break;
+
+		switch (in_header->opcode) {
+		case FUSE_LOOKUP | FUSE_PREFILTER: {
+			char *name = (char *)(bytes_in + sizeof(*in_header));
+
+			if (user_messages)
+				printf("Lookup %s\n", name);
+			if (!strcmp(name, "hide"))
+				TESTFUSEOUTERROR(-ENOENT);
+			else
+				TESTFUSEOUTREAD(name, strlen(name) + 1);
+			break;
+		}
+		default:
+			if (user_messages) {
+				printf("opcode is %d (%s)\n", in_header->opcode,
+				       fuse_opcode_to_string(
+					       in_header->opcode));
+			}
+			break;
+		}
+	}
+
+	result = TEST_SUCCESS;
+
+out:
+	for (i = 0; i < map_count; ++i) {
+		free(map_relocations[i].name);
+		close(map_relocations[i].fd);
+	}
+	free(map_relocations);
+	umount2(mount_dir, MNT_FORCE);
+	delete_dir_tree(mount_dir, true);
+	free(mount_dir);
+	delete_dir_tree(src_dir, true);
+	free(src_dir);
+	if (trace_pid != -1)
+		kill(trace_pid, SIGKILL);
+	return result;
+}
diff --git a/tools/testing/selftests/filesystems/fuse/fuse_test.c b/tools/testing/selftests/filesystems/fuse/fuse_test.c
new file mode 100644
index 0000000..c23f75b
--- /dev/null
+++ b/tools/testing/selftests/filesystems/fuse/fuse_test.c
@@ -0,0 +1,2142 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright 2021 Google LLC
+ */
+#define _GNU_SOURCE
+
+#include "test_fuse.h"
+
+#include <errno.h>
+#include <fcntl.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+
+#include <sys/inotify.h>
+#include <sys/mman.h>
+#include <sys/mount.h>
+#include <sys/syscall.h>
+#include <sys/wait.h>
+
+#include <linux/capability.h>
+#include <linux/random.h>
+
+#include <include/uapi/linux/fuse.h>
+#include <include/uapi/linux/bpf.h>
+
+static const char *ft_src = "ft-src";
+static const char *ft_dst = "ft-dst";
+
+static void fill_buffer(uint8_t *data, size_t len, int file, int block)
+{
+	int i;
+	int seed = 7919 * file + block;
+
+	for (i = 0; i < len; i++) {
+		seed = 1103515245 * seed + 12345;
+		data[i] = (uint8_t)(seed >> (i % 13));
+	}
+}
+
+static bool test_buffer(uint8_t *data, size_t len, int file, int block)
+{
+	int i;
+	int seed = 7919 * file + block;
+
+	for (i = 0; i < len; i++) {
+		seed = 1103515245 * seed + 12345;
+		if (data[i] != (uint8_t)(seed >> (i % 13)))
+			return false;
+	}
+
+	return true;
+}
+
+static int create_file(int dir, struct s name, int index, size_t blocks)
+{
+	int result = TEST_FAILURE;
+	int fd = -1;
+	int i;
+	uint8_t data[PAGE_SIZE];
+
+	TEST(fd = s_openat(dir, name, O_CREAT | O_WRONLY, 0777), fd != -1);
+	for (i = 0; i < blocks; ++i) {
+		fill_buffer(data, PAGE_SIZE, index, i);
+		TESTEQUAL(write(fd, data, sizeof(data)), PAGE_SIZE);
+	}
+	TESTSYSCALL(close(fd));
+	result = TEST_SUCCESS;
+
+out:
+	close(fd);
+	return result;
+}
+
+static int bpf_clear_trace(void)
+{
+	int result = TEST_FAILURE;
+	int tp = -1;
+
+	TEST(tp = s_open(s_path(tracing_folder(), s("trace")),
+			 O_WRONLY | O_TRUNC | O_CLOEXEC), tp != -1);
+
+	result = TEST_SUCCESS;
+out:
+	close(tp);
+	return result;
+}
+
+static int bpf_test_trace_maybe(const char *substr, bool present)
+{
+	int result = TEST_FAILURE;
+	int tp = -1;
+	char trace_buffer[4096] = {};
+	ssize_t bytes_read;
+
+	TEST(tp = s_open(s_path(tracing_folder(), s("trace_pipe")),
+			 O_RDONLY | O_CLOEXEC),
+	     tp != -1);
+	fcntl(tp, F_SETFL, O_NONBLOCK);
+
+	for (;;) {
+		bytes_read = read(tp, trace_buffer, sizeof(trace_buffer));
+		if (present)
+			TESTCOND(bytes_read > 0);
+		else if (bytes_read <= 0) {
+			result = TEST_SUCCESS;
+			break;
+		}
+
+		if (test_options.verbose)
+			ksft_print_msg("%s\n", trace_buffer);
+
+		if (strstr(trace_buffer, substr)) {
+			if (present)
+				result = TEST_SUCCESS;
+			break;
+		}
+	}
+out:
+	close(tp);
+	return result;
+}
+
+static int bpf_test_trace(const char *substr)
+{
+	return bpf_test_trace_maybe(substr, true);
+}
+
+static int bpf_test_no_trace(const char *substr)
+{
+	return bpf_test_trace_maybe(substr, false);
+}
+
+static int basic_test(const char *mount_dir)
+{
+	const char *test_name = "test";
+	const char *test_data = "data";
+
+	int result = TEST_FAILURE;
+	int fuse_dev = -1;
+	char *filename = NULL;
+	int fd = -1;
+	FUSE_DECLARE_DAEMON;
+
+	TESTEQUAL(mount_fuse(mount_dir, -1, -1, &fuse_dev), 0);
+	FUSE_START_DAEMON();
+	if (action) {
+		char data[256];
+
+		filename = concat_file_name(mount_dir, test_name);
+		TESTERR(fd = open(filename, O_RDONLY | O_CLOEXEC), fd != -1);
+		TESTEQUAL(read(fd, data, strlen(test_data)), strlen(test_data));
+		TESTCOND(!strcmp(data, test_data));
+		TESTSYSCALL(close(fd));
+		fd = -1;
+	} else {
+		DECL_FUSE_IN(open);
+		DECL_FUSE_IN(read);
+		DECL_FUSE_IN(flush);
+		DECL_FUSE_IN(release);
+
+		TESTFUSELOOKUP(test_name, 0);
+		TESTFUSEOUT1(fuse_entry_out, ((struct fuse_entry_out) {
+			.nodeid		= 2,
+			.generation	= 1,
+			.attr.ino = 100,
+			.attr.size = 4,
+			.attr.blksize = 512,
+			.attr.mode = S_IFREG | 0777,
+			}));
+
+		TESTFUSEIN(FUSE_OPEN, open_in);
+		TESTFUSEOUT1(fuse_open_out, ((struct fuse_open_out) {
+			.fh = 1,
+			.open_flags = open_in->flags,
+		}));
+
+		//TESTFUSEINNULL(FUSE_CANONICAL_PATH);
+		//TESTFUSEOUTREAD("ignored", 7);
+
+		TESTFUSEIN(FUSE_READ, read_in);
+		TESTFUSEOUTREAD(test_data, strlen(test_data));
+
+		TESTFUSEIN(FUSE_FLUSH, flush_in);
+		TESTFUSEOUTEMPTY();
+
+		TESTFUSEIN(FUSE_RELEASE, release_in);
+		TESTFUSEOUTEMPTY();
+		exit(TEST_SUCCESS);
+	}
+	FUSE_END_DAEMON();
+	close(fuse_dev);
+	close(fd);
+	free(filename);
+	umount(mount_dir);
+	return result;
+}
+
+static int bpf_test_real(const char *mount_dir)
+{
+	const char *test_name = "real";
+	const char *test_data = "Weebles wobble but they don't fall down";
+	int result = TEST_FAILURE;
+	int bpf_fd = -1;
+	int src_fd = -1;
+	int fuse_dev = -1;
+	char *filename = NULL;
+	int fd = -1;
+	char read_buffer[256] = {};
+	ssize_t bytes_read;
+
+	TEST(src_fd = open(ft_src, O_DIRECTORY | O_RDONLY | O_CLOEXEC),
+	     src_fd != -1);
+	TEST(fd = openat(src_fd, test_name, O_CREAT | O_RDWR | O_CLOEXEC, 0777),
+	     fd != -1);
+	TESTEQUAL(write(fd, test_data, strlen(test_data)), strlen(test_data));
+	TESTSYSCALL(close(fd));
+	fd = -1;
+
+	TESTEQUAL(install_elf_bpf("test_bpf.bpf", "test_trace",
+				  &bpf_fd, NULL, NULL), 0);
+	TESTEQUAL(mount_fuse(mount_dir, bpf_fd, src_fd, &fuse_dev), 0);
+
+	filename = concat_file_name(mount_dir, test_name);
+	TESTERR(fd = open(filename, O_RDONLY | O_CLOEXEC), fd != -1);
+	bytes_read = read(fd, read_buffer, strlen(test_data));
+	TESTEQUAL(bytes_read, strlen(test_data));
+	TESTEQUAL(strcmp(test_data, read_buffer), 0);
+	TESTEQUAL(bpf_test_trace("read"), 0);
+
+	result = TEST_SUCCESS;
+out:
+	close(fuse_dev);
+	close(fd);
+	free(filename);
+	umount(mount_dir);
+	close(src_fd);
+	close(bpf_fd);
+	return result;
+}
+
+
+static int bpf_test_partial(const char *mount_dir)
+{
+	const char *test_name = "partial";
+	int result = TEST_FAILURE;
+	int bpf_fd = -1;
+	int src_fd = -1;
+	int fuse_dev = -1;
+	char *filename = NULL;
+	int fd = -1;
+	FUSE_DECLARE_DAEMON;
+
+	TEST(src_fd = open(ft_src, O_DIRECTORY | O_RDONLY | O_CLOEXEC),
+	     src_fd != -1);
+	TESTEQUAL(create_file(src_fd, s(test_name), 1, 2), 0);
+	TESTEQUAL(install_elf_bpf("test_bpf.bpf", "test_trace",
+				  &bpf_fd, NULL, NULL), 0);
+	TESTEQUAL(mount_fuse(mount_dir, bpf_fd, src_fd, &fuse_dev), 0);
+
+	FUSE_START_DAEMON();
+	if (action) {
+		uint8_t data[PAGE_SIZE];
+
+		TEST(filename = concat_file_name(mount_dir, test_name),
+		     filename);
+		TESTERR(fd = open(filename, O_RDONLY | O_CLOEXEC), fd != -1);
+		TESTEQUAL(read(fd, data, PAGE_SIZE), PAGE_SIZE);
+		TESTEQUAL(bpf_test_trace("read"), 0);
+		TESTCOND(test_buffer(data, PAGE_SIZE, 2, 0));
+		TESTCOND(!test_buffer(data, PAGE_SIZE, 1, 0));
+		TESTEQUAL(read(fd, data, PAGE_SIZE), PAGE_SIZE);
+		TESTCOND(test_buffer(data, PAGE_SIZE, 1, 1));
+		TESTCOND(!test_buffer(data, PAGE_SIZE, 2, 1));
+		TESTSYSCALL(close(fd));
+		fd = -1;
+	} else {
+		DECL_FUSE(open);
+		DECL_FUSE(read);
+		DECL_FUSE(release);
+		uint8_t data[PAGE_SIZE];
+
+		TESTFUSEIN2(FUSE_OPEN | FUSE_POSTFILTER, open_in, open_out);
+		TESTFUSEOUT1(fuse_open_out, ((struct fuse_open_out) {
+			.fh = 1,
+			.open_flags = open_in->flags,
+		}));
+
+		TESTFUSEIN(FUSE_READ, read_in);
+		fill_buffer(data, PAGE_SIZE, 2, 0);
+		TESTFUSEOUTREAD(data, PAGE_SIZE);
+
+		TESTFUSEIN(FUSE_RELEASE, release_in);
+		TESTFUSEOUTEMPTY();
+		exit(TEST_SUCCESS);
+	}
+	FUSE_END_DAEMON();
+	close(fuse_dev);
+	close(fd);
+	free(filename);
+	umount(mount_dir);
+	close(src_fd);
+	close(bpf_fd);
+	return result;
+}
+
+static int bpf_test_attrs(const char *mount_dir)
+{
+	const char *test_name = "partial";
+	int result = TEST_FAILURE;
+	int bpf_fd = -1;
+	int src_fd = -1;
+	int fuse_dev = -1;
+	char *filename = NULL;
+	struct stat st;
+
+	TEST(src_fd = open(ft_src, O_DIRECTORY | O_RDONLY | O_CLOEXEC),
+	     src_fd != -1);
+	TESTEQUAL(create_file(src_fd, s(test_name), 1, 2), 0);
+	TESTEQUAL(install_elf_bpf("test_bpf.bpf", "test_trace",
+				  &bpf_fd, NULL, NULL), 0);
+	TESTEQUAL(mount_fuse(mount_dir, bpf_fd, src_fd, &fuse_dev), 0);
+
+	TEST(filename = concat_file_name(mount_dir, test_name), filename);
+	TESTSYSCALL(stat(filename, &st));
+	TESTSYSCALL(chmod(filename, 0111));
+	TESTSYSCALL(stat(filename, &st));
+	TESTEQUAL(st.st_mode & 0777, 0111);
+	TESTSYSCALL(chmod(filename, 0777));
+	TESTSYSCALL(stat(filename, &st));
+	TESTEQUAL(st.st_mode & 0777, 0777);
+	TESTSYSCALL(chown(filename, 5, 6));
+	TESTSYSCALL(stat(filename, &st));
+	TESTEQUAL(st.st_uid, 5);
+	TESTEQUAL(st.st_gid, 6);
+
+	result = TEST_SUCCESS;
+out:
+	close(fuse_dev);
+	free(filename);
+	umount(mount_dir);
+	close(src_fd);
+	close(bpf_fd);
+	return result;
+}
+
+static int bpf_test_readdir(const char *mount_dir)
+{
+	static const char * const names[] = {
+		"real", "partial", "fake", ".", ".."
+	};
+	bool used[ARRAY_SIZE(names)] = { false };
+	int result = TEST_FAILURE;
+	int bpf_fd = -1;
+	int src_fd = -1;
+	int fuse_dev = -1;
+	DIR *dir = NULL;
+	struct dirent *dirent;
+	FUSE_DECLARE_DAEMON;
+
+	TEST(src_fd = open(ft_src, O_DIRECTORY | O_RDONLY | O_CLOEXEC),
+	     src_fd != -1);
+	TESTEQUAL(create_file(src_fd, s(names[0]), 1, 2), 0);
+	TESTEQUAL(create_file(src_fd, s(names[1]), 1, 2), 0);
+	TESTEQUAL(install_elf_bpf("test_bpf.bpf", "test_trace",
+				  &bpf_fd, NULL, NULL), 0);
+	TESTEQUAL(mount_fuse(mount_dir, bpf_fd, src_fd, &fuse_dev), 0);
+
+	FUSE_START_DAEMON();
+	if (action) {
+		int i, j;
+
+		TEST(dir = s_opendir(s(mount_dir)), dir);
+		TESTEQUAL(bpf_test_trace("opendir"), 0);
+
+		for (i = 0; i < ARRAY_SIZE(names); ++i) {
+			TEST(dirent = readdir(dir), dirent);
+
+			for (j = 0; j < ARRAY_SIZE(names); ++j)
+				if (!used[j] &&
+				    strcmp(names[j], dirent->d_name) == 0) {
+					used[j] = true;
+					break;
+				}
+			TESTNE(j, ARRAY_SIZE(names));
+		}
+		TEST(dirent = readdir(dir), dirent == NULL);
+		TESTSYSCALL(closedir(dir));
+		dir = NULL;
+		TESTEQUAL(bpf_test_trace("readdir"), 0);
+	} else {
+		struct fuse_in_header *in_header =
+			(struct fuse_in_header *)bytes_in;
+		ssize_t res = read(fuse_dev, bytes_in, sizeof(bytes_in));
+		struct fuse_read_out *read_out =
+			(struct fuse_read_out *) (bytes_in +
+					sizeof(*in_header) +
+					sizeof(struct fuse_read_in));
+		struct fuse_dirent *fuse_dirent =
+			(struct fuse_dirent *) (bytes_in + res);
+
+		TESTGE(res, sizeof(*in_header) + sizeof(struct fuse_read_in));
+		TESTEQUAL(in_header->opcode, FUSE_READDIR | FUSE_POSTFILTER);
+		*fuse_dirent = (struct fuse_dirent) {
+			.ino = 100,
+			.off = 5,
+			.namelen = strlen("fake"),
+			.type = DT_REG,
+		};
+		strcpy((char *)(bytes_in + res + sizeof(*fuse_dirent)), "fake");
+		res += FUSE_DIRENT_ALIGN(sizeof(*fuse_dirent) + strlen("fake") +
+					 1);
+		TESTFUSEDIROUTREAD(read_out,
+				bytes_in +
+				   sizeof(struct fuse_in_header) +
+				   sizeof(struct fuse_read_in) +
+				   sizeof(struct fuse_read_out),
+				res - sizeof(struct fuse_in_header) -
+				    sizeof(struct fuse_read_in) -
+				    sizeof(struct fuse_read_out));
+		res = read(fuse_dev, bytes_in, sizeof(bytes_in));
+		TESTEQUAL(res, sizeof(*in_header) +
+			  sizeof(struct fuse_read_in) +
+			  sizeof(struct fuse_read_out));
+		TESTEQUAL(in_header->opcode, FUSE_READDIR | FUSE_POSTFILTER);
+		TESTFUSEDIROUTREAD(read_out, bytes_in, 0);
+		exit(TEST_SUCCESS);
+	}
+	FUSE_END_DAEMON();
+	closedir(dir);
+	close(fuse_dev);
+	umount(mount_dir);
+	close(src_fd);
+	close(bpf_fd);
+	return result;
+}
+
+static int bpf_test_redact_readdir(const char *mount_dir)
+{
+	static const char * const names[] = {
+		"f1", "f2", "f3", "f4", "f5", "f6", ".", ".."
+	};
+	bool used[ARRAY_SIZE(names)] = { false };
+	int num_shown = (ARRAY_SIZE(names) - 2) / 2 + 2;
+	int result = TEST_FAILURE;
+	int bpf_fd = -1;
+	int src_fd = -1;
+	int fuse_dev = -1;
+	DIR *dir = NULL;
+	struct dirent *dirent;
+	int i;
+	int count = 0;
+	FUSE_DECLARE_DAEMON;
+
+	TEST(src_fd = open(ft_src, O_DIRECTORY | O_RDONLY | O_CLOEXEC),
+	     src_fd != -1);
+	for (i = 0; i < ARRAY_SIZE(names) - 2; i++)
+		TESTEQUAL(create_file(src_fd, s(names[i]), 1, 2), 0);
+
+	TESTEQUAL(install_elf_bpf("test_bpf.bpf", "test_readdir_redact",
+				  &bpf_fd, NULL, NULL), 0);
+	TESTEQUAL(mount_fuse(mount_dir, bpf_fd, src_fd, &fuse_dev), 0);
+
+	FUSE_START_DAEMON();
+	if (action) {
+		int j;
+
+		TEST(dir = s_opendir(s(mount_dir)), dir);
+		while ((dirent = readdir(dir))) {
+			errno = 0;
+			TESTEQUAL(errno, 0);
+
+			for (j = 0; j < ARRAY_SIZE(names); ++j)
+				if (!used[j] &&
+				    strcmp(names[j], dirent->d_name) == 0) {
+					used[j] = true;
+					count++;
+					break;
+				}
+			TESTNE(j, ARRAY_SIZE(names));
+			TESTGE(num_shown, count);
+		}
+		TESTEQUAL(count, num_shown);
+		TESTSYSCALL(closedir(dir));
+		dir = NULL;
+	} else {
+		bool skip = true;
+
+		for (int i = 0; i < ARRAY_SIZE(names) + 1; i++) {
+			uint8_t bytes_in[FUSE_MIN_READ_BUFFER];
+			uint8_t bytes_out[FUSE_MIN_READ_BUFFER];
+			struct fuse_in_header *in_header =
+				(struct fuse_in_header *)bytes_in;
+			ssize_t res = read(fuse_dev, bytes_in, sizeof(bytes_in));
+			int length_out = 0;
+			uint8_t *pos;
+			uint8_t *dirs_in;
+			uint8_t *dirs_out;
+			struct fuse_read_in *fuse_read_in;
+			struct fuse_read_out *fuse_read_out_in;
+			struct fuse_read_out *fuse_read_out_out;
+			struct fuse_dirent *fuse_dirent_in = NULL;
+			struct fuse_dirent *next = NULL;
+			bool again = false;
+			int dir_ent_len = 0;
+
+			TESTGE(res, sizeof(struct fuse_in_header) +
+					sizeof(struct fuse_read_in) +
+					sizeof(struct fuse_read_out));
+
+			pos = bytes_in + sizeof(struct fuse_in_header);
+			fuse_read_in = (struct fuse_read_in *) pos;
+			pos += sizeof(*fuse_read_in);
+			fuse_read_out_in = (struct fuse_read_out *) pos;
+			pos += sizeof(*fuse_read_out_in);
+			dirs_in = pos;
+
+			pos = bytes_out + sizeof(struct fuse_out_header);
+			fuse_read_out_out = (struct fuse_read_out *) pos;
+			pos += sizeof(*fuse_read_out_out);
+			dirs_out = pos;
+
+			if (dirs_in < bytes_in + res) {
+				bool is_dot;
+
+				fuse_dirent_in = (struct fuse_dirent *) dirs_in;
+				is_dot = (fuse_dirent_in->namelen == 1 &&
+						!strncmp(fuse_dirent_in->name, ".", 1)) ||
+					 (fuse_dirent_in->namelen == 2 &&
+						!strncmp(fuse_dirent_in->name, "..", 2));
+
+				dir_ent_len = FUSE_DIRENT_ALIGN(
+					sizeof(*fuse_dirent_in) +
+					fuse_dirent_in->namelen);
+
+				if (dirs_in + dir_ent_len < bytes_in + res)
+					next = (struct fuse_dirent *)
+							(dirs_in + dir_ent_len);
+
+				if (!skip || is_dot) {
+					memcpy(dirs_out, fuse_dirent_in,
+					       sizeof(struct fuse_dirent) +
+					       fuse_dirent_in->namelen);
+					length_out += dir_ent_len;
+				}
+				again = ((skip && !is_dot) && next);
+
+				if (!is_dot)
+					skip = !skip;
+			}
+
+			fuse_read_out_out->offset = next ? next->off :
+					fuse_read_out_in->offset;
+			fuse_read_out_out->again = again;
+
+			{
+			struct fuse_out_header *out_header =
+				(struct fuse_out_header *)bytes_out;
+
+			*out_header = (struct fuse_out_header) {
+				.len = sizeof(*out_header) +
+				       sizeof(*fuse_read_out_out) + length_out,
+				.unique = in_header->unique,
+			};
+			TESTEQUAL(write(fuse_dev, bytes_out, out_header->len),
+				  out_header->len);
+			}
+		}
+		exit(TEST_SUCCESS);
+	}
+	FUSE_END_DAEMON();
+	closedir(dir);
+	close(fuse_dev);
+	umount(mount_dir);
+	close(src_fd);
+	close(bpf_fd);
+	return result;
+}
+
+/*
+ * This test is more to show what classic fuse does with a creat in a subdir
+ * than a test of any new functionality
+ */
+static int bpf_test_creat(const char *mount_dir)
+{
+	const char *dir_name = "show";
+	const char *file_name = "file";
+	int result = TEST_FAILURE;
+	int fuse_dev = -1;
+	int fd = -1;
+	FUSE_DECLARE_DAEMON;
+
+	TESTEQUAL(mount_fuse(mount_dir, -1, -1, &fuse_dev), 0);
+
+	FUSE_START_DAEMON();
+	if (action) {
+		TEST(fd = s_creat(s_path(s_path(s(mount_dir), s(dir_name)),
+					 s(file_name)),
+				  0777),
+		     fd != -1);
+		TESTSYSCALL(close(fd));
+	} else {
+		DECL_FUSE_IN(create);
+		DECL_FUSE_IN(release);
+		DECL_FUSE_IN(flush);
+
+		TESTFUSELOOKUP(dir_name, 0);
+		TESTFUSEOUT1(fuse_entry_out, ((struct fuse_entry_out) {
+			.nodeid		= 3,
+			.generation	= 1,
+			.attr.ino = 100,
+			.attr.size = 4,
+			.attr.blksize = 512,
+			.attr.mode = S_IFDIR | 0777,
+			}));
+
+		TESTFUSELOOKUP(file_name, 0);
+		TESTFUSEOUTERROR(-ENOENT);
+
+		TESTFUSEINEXT(FUSE_CREATE, create_in, strlen(file_name) + 1);
+		TESTFUSEOUT2(fuse_entry_out, ((struct fuse_entry_out) {
+			.nodeid		= 2,
+			.generation	= 1,
+			.attr.ino = 200,
+			.attr.size = 4,
+			.attr.blksize = 512,
+			.attr.mode = S_IFREG,
+			}),
+			fuse_open_out, ((struct fuse_open_out) {
+			.fh = 1,
+			.open_flags = create_in->flags,
+			}));
+
+		//TESTFUSEINNULL(FUSE_CANONICAL_PATH);
+		//TESTFUSEOUTREAD("ignored", 7);
+
+		TESTFUSEIN(FUSE_FLUSH, flush_in);
+		TESTFUSEOUTEMPTY();
+
+		TESTFUSEIN(FUSE_RELEASE, release_in);
+		TESTFUSEOUTEMPTY();
+		exit(TEST_SUCCESS);
+	}
+	FUSE_END_DAEMON();
+	close(fuse_dev);
+	umount(mount_dir);
+	return result;
+}
+
+static int bpf_test_hidden_entries(const char *mount_dir)
+{
+	static const char * const dir_names[] = {
+		"show",
+		"hide",
+	};
+	const char *file_name = "file";
+	const char *data = "The quick brown fox jumps over the lazy dog\n";
+	int result = TEST_FAILURE;
+	int src_fd = -1;
+	int bpf_fd = -1;
+	int fuse_dev = -1;
+	int fd = -1;
+
+	TEST(src_fd = open(ft_src, O_DIRECTORY | O_RDONLY | O_CLOEXEC),
+	     src_fd != -1);
+	TESTSYSCALL(mkdirat(src_fd, dir_names[0], 0777));
+	TESTSYSCALL(mkdirat(src_fd, dir_names[1], 0777));
+	TESTEQUAL(install_elf_bpf("test_bpf.bpf", "test_hidden",
+				  &bpf_fd, NULL, NULL), 0);
+	TESTEQUAL(mount_fuse(mount_dir, bpf_fd, src_fd, &fuse_dev), 0);
+
+	TEST(fd = s_creat(s_path(s_path(s(mount_dir), s(dir_names[0])),
+				 s(file_name)),
+			  0777),
+	     fd != -1);
+	TESTSYSCALL(fallocate(fd, 0, 0, 4096));
+	TEST(write(fd, data, strlen(data)), strlen(data));
+	TESTSYSCALL(close(fd));
+	TESTEQUAL(bpf_test_trace("Create"), 0);
+
+	result = TEST_SUCCESS;
+out:
+	close(fuse_dev);
+	umount(mount_dir);
+	close(bpf_fd);
+	close(src_fd);
+	return result;
+}
+
+static int bpf_test_dir(const char *mount_dir)
+{
+	const char *dir_name = "dir";
+	int result = TEST_FAILURE;
+	int src_fd = -1;
+	int bpf_fd = -1;
+	int fuse_dev = -1;
+	struct stat st;
+
+	TEST(src_fd = open(ft_src, O_DIRECTORY | O_RDONLY | O_CLOEXEC),
+	     src_fd != -1);
+	TESTEQUAL(install_elf_bpf("test_bpf.bpf", "test_trace",
+				  &bpf_fd, NULL, NULL), 0);
+	TESTEQUAL(mount_fuse(mount_dir, bpf_fd, src_fd, &fuse_dev), 0);
+
+	TESTSYSCALL(s_mkdir(s_path(s(mount_dir), s(dir_name)), 0777));
+	TESTEQUAL(bpf_test_trace("mkdir"), 0);
+	TESTSYSCALL(s_stat(s_path(s(ft_src), s(dir_name)), &st));
+	TESTSYSCALL(s_rmdir(s_path(s(mount_dir), s(dir_name))));
+	TESTEQUAL(s_stat(s_path(s(ft_src), s(dir_name)), &st), -1);
+	TESTEQUAL(errno, ENOENT);
+	result = TEST_SUCCESS;
+out:
+	close(fuse_dev);
+	umount(mount_dir);
+	close(bpf_fd);
+	close(src_fd);
+	return result;
+}
+
+static int bpf_test_file(const char *mount_dir, bool close_first)
+{
+	const char *file_name = "real";
+	int result = TEST_FAILURE;
+	int src_fd = -1;
+	int bpf_fd = -1;
+	int fuse_dev = -1;
+	int fd = -1;
+	struct stat st;
+
+	TEST(src_fd = open(ft_src, O_DIRECTORY | O_RDONLY | O_CLOEXEC),
+	     src_fd != -1);
+	TESTEQUAL(install_elf_bpf("test_bpf.bpf", "test_trace",
+			  &bpf_fd, NULL, NULL), 0);
+	TESTEQUAL(mount_fuse(mount_dir, bpf_fd, src_fd, &fuse_dev), 0);
+
+	TEST(fd = s_creat(s_path(s(mount_dir), s(file_name)),
+			  0777),
+	     fd != -1);
+	TESTEQUAL(bpf_test_trace("Create"), 0);
+	if (close_first) {
+		TESTSYSCALL(close(fd));
+		fd = -1;
+	}
+	TESTSYSCALL(s_stat(s_path(s(ft_src), s(file_name)), &st));
+	TESTSYSCALL(s_unlink(s_path(s(mount_dir), s(file_name))));
+	TESTEQUAL(bpf_test_trace("unlink"), 0);
+	TESTEQUAL(s_stat(s_path(s(ft_src), s(file_name)), &st), -1);
+	TESTEQUAL(errno, ENOENT);
+	if (!close_first) {
+		TESTSYSCALL(close(fd));
+		fd = -1;
+	}
+	result = TEST_SUCCESS;
+out:
+	close(fd);
+	close(fuse_dev);
+	umount(mount_dir);
+	close(bpf_fd);
+	close(src_fd);
+	return result;
+}
+
+static int bpf_test_file_early_close(const char *mount_dir)
+{
+	return bpf_test_file(mount_dir, true);
+}
+
+static int bpf_test_file_late_close(const char *mount_dir)
+{
+	return bpf_test_file(mount_dir, false);
+}
+
+static int bpf_test_alter_errcode_bpf(const char *mount_dir)
+{
+	const char *dir_name = "dir";
+	int result = TEST_FAILURE;
+	int src_fd = -1;
+	int bpf_fd = -1;
+	int fuse_dev = -1;
+	struct stat st;
+
+	TEST(src_fd = open(ft_src, O_DIRECTORY | O_RDONLY | O_CLOEXEC),
+	     src_fd != -1);
+	TESTEQUAL(install_elf_bpf("test_bpf.bpf", "test_error",
+				  &bpf_fd, NULL, NULL), 0);
+	TESTEQUAL(mount_fuse(mount_dir, bpf_fd, src_fd, &fuse_dev), 0);
+
+	TESTSYSCALL(s_mkdir(s_path(s(mount_dir), s(dir_name)), 0777));
+	//TESTEQUAL(bpf_test_trace("mkdir"), 0);
+	TESTSYSCALL(s_stat(s_path(s(ft_src), s(dir_name)), &st));
+	TESTEQUAL(s_mkdir(s_path(s(mount_dir), s(dir_name)), 0777), -EPERM);
+	TESTSYSCALL(s_rmdir(s_path(s(mount_dir), s(dir_name))));
+	TESTEQUAL(s_stat(s_path(s(ft_src), s(dir_name)), &st), -1);
+	TESTEQUAL(errno, ENOENT);
+	result = TEST_SUCCESS;
+out:
+	close(fuse_dev);
+	umount(mount_dir);
+	close(bpf_fd);
+	close(src_fd);
+	return result;
+}
+
+static int bpf_test_alter_errcode_userspace(const char *mount_dir)
+{
+	const char *dir_name = "doesnotexist";
+	int result = TEST_FAILURE;
+	int src_fd = -1;
+	int bpf_fd = -1;
+	int fuse_dev = -1;
+	FUSE_DECLARE_DAEMON;
+
+	TEST(src_fd = open(ft_src, O_DIRECTORY | O_RDONLY | O_CLOEXEC),
+	     src_fd != -1);
+	TESTEQUAL(install_elf_bpf("test_bpf.bpf", "test_error",
+				  &bpf_fd, NULL, NULL), 0);
+	TESTEQUAL(mount_fuse(mount_dir, bpf_fd, src_fd, &fuse_dev), 0);
+
+	FUSE_START_DAEMON();
+	if (action) {
+		TESTEQUAL(s_unlink(s_path(s(mount_dir), s(dir_name))),
+		     -1);
+		TESTEQUAL(errno, ENOMEM);
+	} else {
+		TESTFUSELOOKUP("doesnotexist", FUSE_POSTFILTER);
+		TESTFUSEOUTERROR(-ENOMEM);
+		exit(TEST_SUCCESS);
+	}
+	FUSE_END_DAEMON();
+	close(fuse_dev);
+	umount(mount_dir);
+	close(bpf_fd);
+	close(src_fd);
+	return result;
+}
+
+static int bpf_test_mknod(const char *mount_dir)
+{
+	const char *file_name = "real";
+	int result = TEST_FAILURE;
+	int src_fd = -1;
+	int bpf_fd = -1;
+	int fuse_dev = -1;
+	struct stat st;
+
+	TEST(src_fd = open(ft_src, O_DIRECTORY | O_RDONLY | O_CLOEXEC),
+	     src_fd != -1);
+	TESTEQUAL(install_elf_bpf("test_bpf.bpf", "test_trace",
+				  &bpf_fd, NULL, NULL), 0);
+	TESTEQUAL(mount_fuse(mount_dir, bpf_fd, src_fd, &fuse_dev), 0);
+
+	TESTSYSCALL(s_mkfifo(s_path(s(mount_dir), s(file_name)), 0777));
+	TESTEQUAL(bpf_test_trace("mknod"), 0);
+	TESTSYSCALL(s_stat(s_path(s(ft_src), s(file_name)), &st));
+	TESTSYSCALL(s_unlink(s_path(s(mount_dir), s(file_name))));
+	TESTEQUAL(bpf_test_trace("unlink"), 0);
+	TESTEQUAL(s_stat(s_path(s(ft_src), s(file_name)), &st), -1);
+	TESTEQUAL(errno, ENOENT);
+	result = TEST_SUCCESS;
+out:
+	close(fuse_dev);
+	umount(mount_dir);
+	close(bpf_fd);
+	close(src_fd);
+	return result;
+}
+
+static int bpf_test_largedir(const char *mount_dir)
+{
+	const char *show = "show";
+	const int files = 1000;
+
+	int result = TEST_FAILURE;
+	int src_fd = -1;
+	int bpf_fd = -1;
+	int fuse_dev = -1;
+	struct map_relocation *map_relocations = NULL;
+	size_t map_count = 0;
+	FUSE_DECLARE_DAEMON;
+
+	TEST(src_fd = open(ft_src, O_DIRECTORY | O_RDONLY | O_CLOEXEC),
+	     src_fd != -1);
+	TESTEQUAL(install_elf_bpf("fd_bpf.bpf", "test_daemon",
+			  &bpf_fd, &map_relocations, &map_count), 0);
+	TESTEQUAL(mount_fuse(mount_dir, bpf_fd, src_fd, &fuse_dev), 0);
+
+	FUSE_START_DAEMON();
+	if (action) {
+		int i;
+		int fd;
+		DIR *dir = NULL;
+		struct dirent *dirent;
+
+		TESTSYSCALL(s_mkdir(s_path(s(mount_dir), s(show)), 0777));
+		for (i = 0; i < files; ++i) {
+			char filename[NAME_MAX];
+
+			sprintf(filename, "%d", i);
+			TEST(fd = s_creat(s_path(s_path(s(mount_dir), s(show)),
+						 s(filename)), 0777), fd != -1);
+			TESTSYSCALL(close(fd));
+		}
+
+		TEST(dir = s_opendir(s_path(s(mount_dir), s(show))), dir);
+		for (dirent = readdir(dir); dirent; dirent = readdir(dir))
+			;
+		closedir(dir);
+	} else {
+		int i;
+
+		for (i = 0; i < files + 2; ++i) {
+			TESTFUSELOOKUP(show, FUSE_PREFILTER);
+			TESTFUSEOUTREAD(show, 5);
+		}
+		exit(TEST_SUCCESS);
+	}
+	FUSE_END_DAEMON();
+	close(fuse_dev);
+	umount(mount_dir);
+	close(bpf_fd);
+	close(src_fd);
+	return result;
+}
+
+static int bpf_test_link(const char *mount_dir)
+{
+	const char *file_name = "real";
+	const char *link_name = "partial";
+	int result = TEST_FAILURE;
+	int fd = -1;
+	int src_fd = -1;
+	int bpf_fd = -1;
+	int fuse_dev = -1;
+	struct stat st;
+
+	TEST(src_fd = open(ft_src, O_DIRECTORY | O_RDONLY | O_CLOEXEC),
+	     src_fd != -1);
+	TESTEQUAL(install_elf_bpf("test_bpf.bpf", "test_trace", &bpf_fd, NULL,
+				  NULL),
+		  0);
+	TESTEQUAL(mount_fuse(mount_dir, bpf_fd, src_fd, &fuse_dev), 0);
+
+	TEST(fd = s_creat(s_path(s(mount_dir), s(file_name)), 0777), fd != -1);
+	TESTEQUAL(bpf_test_trace("Create"), 0);
+	TESTSYSCALL(s_stat(s_path(s(ft_src), s(file_name)), &st));
+
+	TESTSYSCALL(s_link(s_path(s(mount_dir), s(file_name)),
+			   s_path(s(mount_dir), s(link_name))));
+
+	TESTEQUAL(bpf_test_trace("link"), 0);
+	TESTSYSCALL(s_stat(s_path(s(ft_src), s(link_name)), &st));
+
+	TESTSYSCALL(s_unlink(s_path(s(mount_dir), s(link_name))));
+	TESTEQUAL(bpf_test_trace("unlink"), 0);
+	TESTEQUAL(s_stat(s_path(s(ft_src), s(link_name)), &st), -1);
+	TESTEQUAL(errno, ENOENT);
+
+	TESTSYSCALL(s_unlink(s_path(s(mount_dir), s(file_name))));
+	TESTEQUAL(bpf_test_trace("unlink"), 0);
+	TESTEQUAL(s_stat(s_path(s(ft_src), s(file_name)), &st), -1);
+	TESTEQUAL(errno, ENOENT);
+
+	result = TEST_SUCCESS;
+out:
+	close(fd);
+	close(fuse_dev);
+	umount(mount_dir);
+	close(bpf_fd);
+	close(src_fd);
+	return result;
+}
+
+static int bpf_test_symlink(const char *mount_dir)
+{
+	const char *test_name = "real";
+	const char *symlink_name = "partial";
+	const char *test_data = "Weebles wobble but they don't fall down";
+	int result = TEST_FAILURE;
+	int bpf_fd = -1;
+	int src_fd = -1;
+	int fuse_dev = -1;
+	int fd = -1;
+	char read_buffer[256] = {};
+	ssize_t bytes_read;
+
+	TEST(src_fd = open(ft_src, O_DIRECTORY | O_RDONLY | O_CLOEXEC),
+	     src_fd != -1);
+	TEST(fd = openat(src_fd, test_name, O_CREAT | O_RDWR | O_CLOEXEC, 0777),
+	     fd != -1);
+	TESTEQUAL(write(fd, test_data, strlen(test_data)), strlen(test_data));
+	TESTSYSCALL(close(fd));
+	fd = -1;
+
+	TESTEQUAL(install_elf_bpf("test_bpf.bpf", "test_trace",
+				  &bpf_fd, NULL, NULL), 0);
+	TESTEQUAL(mount_fuse(mount_dir, bpf_fd, src_fd, &fuse_dev), 0);
+
+	TESTSYSCALL(s_symlink(s_path(s(mount_dir), s(test_name)),
+				   s_path(s(mount_dir), s(symlink_name))));
+	TESTEQUAL(bpf_test_trace("symlink"), 0);
+
+	TESTERR(fd = s_open(s_path(s(mount_dir), s(symlink_name)), O_RDONLY | O_CLOEXEC), fd != -1);
+	bytes_read = read(fd, read_buffer, strlen(test_data));
+	TESTEQUAL(bpf_test_trace("readlink"), 0);
+	TESTEQUAL(bytes_read, strlen(test_data));
+	TESTEQUAL(strcmp(test_data, read_buffer), 0);
+
+	result = TEST_SUCCESS;
+out:
+	close(fuse_dev);
+	close(fd);
+	umount(mount_dir);
+	close(src_fd);
+	close(bpf_fd);
+	return result;
+}
+
+static int bpf_test_xattr(const char *mount_dir)
+{
+	static const char file_name[] = "real";
+	static const char xattr_name[] = "user.xattr_test_name";
+	static const char xattr_value[] = "this_is_a_test";
+	const size_t xattr_size = sizeof(xattr_value);
+	char xattr_value_ret[256];
+	ssize_t xattr_size_ret;
+	int result = TEST_FAILURE;
+	int fd = -1;
+	int src_fd = -1;
+	int bpf_fd = -1;
+	int fuse_dev = -1;
+	struct stat st;
+
+	memset(xattr_value_ret, '\0', sizeof(xattr_value_ret));
+
+	TEST(src_fd = open(ft_src, O_DIRECTORY | O_RDONLY | O_CLOEXEC),
+	     src_fd != -1);
+	TESTEQUAL(install_elf_bpf("test_bpf.bpf", "test_trace", &bpf_fd, NULL,
+				  NULL),
+		  0);
+	TESTEQUAL(mount_fuse(mount_dir, bpf_fd, src_fd, &fuse_dev), 0);
+
+	TEST(fd = s_creat(s_path(s(mount_dir), s(file_name)), 0777), fd != -1);
+	TESTEQUAL(bpf_test_trace("Create"), 0);
+	TESTSYSCALL(close(fd));
+
+	TESTSYSCALL(s_stat(s_path(s(ft_src), s(file_name)), &st));
+	TEST(result = s_getxattr(s_path(s(mount_dir), s(file_name)), xattr_name,
+				 xattr_value_ret, sizeof(xattr_value_ret),
+				 &xattr_size_ret),
+	     result == -1);
+	TESTEQUAL(errno, ENODATA);
+	TESTEQUAL(bpf_test_trace("getxattr"), 0);
+
+	TESTSYSCALL(s_listxattr(s_path(s(mount_dir), s(file_name)),
+				xattr_value_ret, sizeof(xattr_value_ret),
+				&xattr_size_ret));
+	TESTEQUAL(bpf_test_trace("listxattr"), 0);
+	TESTEQUAL(xattr_size_ret, 0);
+
+	TESTSYSCALL(s_setxattr(s_path(s(mount_dir), s(file_name)), xattr_name,
+			       xattr_value, xattr_size, 0));
+	TESTEQUAL(bpf_test_trace("setxattr"), 0);
+
+	TESTSYSCALL(s_listxattr(s_path(s(mount_dir), s(file_name)),
+				xattr_value_ret, sizeof(xattr_value_ret),
+				&xattr_size_ret));
+	TESTEQUAL(bpf_test_trace("listxattr"), 0);
+	TESTEQUAL(xattr_size_ret, sizeof(xattr_name));
+	TESTEQUAL(strcmp(xattr_name, xattr_value_ret), 0);
+
+	TESTSYSCALL(s_getxattr(s_path(s(mount_dir), s(file_name)), xattr_name,
+			       xattr_value_ret, sizeof(xattr_value_ret),
+			       &xattr_size_ret));
+	TESTEQUAL(bpf_test_trace("getxattr"), 0);
+	TESTEQUAL(xattr_size, xattr_size_ret);
+	TESTEQUAL(strcmp(xattr_value, xattr_value_ret), 0);
+
+	TESTSYSCALL(s_removexattr(s_path(s(mount_dir), s(file_name)), xattr_name));
+	TESTEQUAL(bpf_test_trace("removexattr"), 0);
+
+	TESTEQUAL(s_getxattr(s_path(s(mount_dir), s(file_name)), xattr_name,
+			       xattr_value_ret, sizeof(xattr_value_ret),
+			       &xattr_size_ret), -1);
+	TESTEQUAL(errno, ENODATA);
+
+	TESTSYSCALL(s_unlink(s_path(s(mount_dir), s(file_name))));
+	TESTEQUAL(bpf_test_trace("unlink"), 0);
+	TESTEQUAL(s_stat(s_path(s(ft_src), s(file_name)), &st), -1);
+	TESTEQUAL(errno, ENOENT);
+
+	result = TEST_SUCCESS;
+out:
+	close(fuse_dev);
+	umount(mount_dir);
+	close(bpf_fd);
+	close(src_fd);
+	return result;
+}
+
+static int bpf_test_set_backing(const char *mount_dir)
+{
+	const char *backing_name = "backing";
+	const char *test_data = "data";
+	const char *test_name = "test";
+
+	int result = TEST_FAILURE;
+	int fuse_dev = -1;
+	int fd = -1;
+	FUSE_DECLARE_DAEMON;
+
+	TESTEQUAL(mount_fuse_no_init(mount_dir, -1, -1, &fuse_dev), 0);
+	FUSE_START_DAEMON();
+	if (action) {
+		char data[256] = {0};
+
+		TESTERR(fd = s_open(s_path(s(mount_dir), s(test_name)),
+				    O_RDONLY | O_CLOEXEC), fd != -1);
+		TESTEQUAL(read(fd, data, strlen(test_data)), strlen(test_data));
+		TESTCOND(!strcmp(data, test_data));
+		TESTSYSCALL(close(fd));
+		fd = -1;
+		TESTSYSCALL(umount(mount_dir));
+	} else {
+		int bpf_fd  = -1;
+		int backing_fd = -1;
+
+		TESTERR(backing_fd = s_creat(s_path(s(ft_src), s(backing_name)), 0777),
+			backing_fd != -1);
+		TESTEQUAL(write(backing_fd, test_data, strlen(test_data)),
+			  strlen(test_data));
+		TESTEQUAL(install_elf_bpf("test_bpf.bpf", "test_simple",
+					  &bpf_fd, NULL, NULL), 0);
+
+		TESTFUSEINIT();
+		TESTFUSELOOKUP(test_name, 0);
+		TESTFUSEOUT2(fuse_entry_out, ((struct fuse_entry_out) {0}),
+			     fuse_entry_bpf_out, ((struct fuse_entry_bpf_out) {
+			.backing_action = FUSE_ACTION_REPLACE,
+			.backing_fd = backing_fd,
+			.bpf_action = FUSE_ACTION_REPLACE,
+			.bpf_fd = bpf_fd,
+			}));
+		read(fuse_dev, bytes_in, sizeof(bytes_in));
+		TESTSYSCALL(close(bpf_fd));
+		TESTSYSCALL(close(backing_fd));
+		exit(TEST_SUCCESS);
+	}
+	FUSE_END_DAEMON();
+	close(fuse_dev);
+	close(fd);
+	umount(mount_dir);
+	return result;
+}
+
+static int bpf_test_remove_backing(const char *mount_dir)
+{
+	const char *folder1 = "folder1";
+	const char *folder2 = "folder2";
+	const char *file = "file1";
+	const char *contents1 = "contents1";
+	const char *contents2 = "contents2";
+
+	int result = TEST_FAILURE;
+	int fuse_dev = -1;
+	int fd = -1;
+	int src_fd = -1;
+	int bpf_fd = -1;
+	char data[256] = {0};
+	FUSE_DECLARE_DAEMON;
+
+	/*
+	 * Create folder1/file
+	 *        folder2/file
+	 *
+	 * test will install bpf into mount.
+	 * bpf will postfilter root lookup to daemon.
+	 * daemon will remove bpf and redirect opens on folder1 to folder2.
+	 * test will open folder1/file which will be redirected to folder2.
+	 * test will check no traces for file, and contents are folder2/file.
+	 */
+	TESTEQUAL(bpf_clear_trace(), 0);
+	TESTSYSCALL(s_mkdir(s_path(s(ft_src), s(folder1)), 0777));
+	TEST(fd = s_creat(s_pathn(3, s(ft_src), s(folder1), s(file)), 0777),
+	     fd != -1);
+	TESTEQUAL(write(fd, contents1, strlen(contents1)), strlen(contents1));
+	TESTSYSCALL(close(fd));
+	TESTSYSCALL(s_mkdir(s_path(s(ft_src), s(folder2)), 0777));
+	TEST(fd = s_creat(s_pathn(3, s(ft_src), s(folder2), s(file)), 0777),
+	     fd != -1);
+	TESTEQUAL(write(fd, contents2, strlen(contents2)), strlen(contents2));
+	TESTSYSCALL(close(fd));
+
+	TEST(src_fd = open(ft_src, O_DIRECTORY | O_RDONLY | O_CLOEXEC),
+	     src_fd != -1);
+	TESTEQUAL(install_elf_bpf("test_bpf.bpf", "test_passthrough", &bpf_fd,
+				  NULL, NULL), 0);
+	TESTEQUAL(mount_fuse_no_init(mount_dir, bpf_fd, src_fd, &fuse_dev), 0);
+
+	FUSE_START_DAEMON();
+	if (action) {
+		TESTERR(fd = s_open(s_pathn(3, s(mount_dir), s(folder1),
+					    s(file)),
+				    O_RDONLY | O_CLOEXEC), fd != -1);
+		TESTEQUAL(read(fd, data, sizeof(data)), strlen(contents2));
+		TESTCOND(!strcmp(data, contents2));
+		TESTEQUAL(bpf_test_no_trace("file"), 0);
+		TESTSYSCALL(close(fd));
+		fd = -1;
+		TESTSYSCALL(umount(mount_dir));
+	} else {
+		struct {
+			char name[8];
+			struct fuse_entry_out feo;
+			struct fuse_entry_bpf_out febo;
+		} __packed in;
+		int backing_fd = -1;
+
+		TESTFUSEINIT();
+		TESTFUSEIN(FUSE_LOOKUP | FUSE_POSTFILTER, &in);
+		TEST(backing_fd = s_open(s_path(s(ft_src), s(folder2)),
+				 O_DIRECTORY | O_RDONLY | O_CLOEXEC),
+		     backing_fd != -1);
+		TESTFUSEOUT2(fuse_entry_out, ((struct fuse_entry_out) {0}),
+			     fuse_entry_bpf_out, ((struct fuse_entry_bpf_out) {
+			.bpf_action = FUSE_ACTION_REMOVE,
+			.backing_action = FUSE_ACTION_REPLACE,
+			.backing_fd = backing_fd,
+			}));
+
+		while (read(fuse_dev, bytes_in, sizeof(bytes_in)) != -1)
+			;
+		TESTSYSCALL(close(backing_fd));
+		exit(TEST_SUCCESS);
+	}
+	FUSE_END_DAEMON();
+	close(fuse_dev);
+	close(fd);
+	close(src_fd);
+	close(bpf_fd);
+	umount(mount_dir);
+	return result;
+}
+
+static int bpf_test_dir_rename(const char *mount_dir)
+{
+	const char *dir_name = "dir";
+	const char *dir_name2 = "dir2";
+	int result = TEST_FAILURE;
+	int src_fd = -1;
+	int bpf_fd = -1;
+	int fuse_dev = -1;
+	struct stat st;
+
+	TEST(src_fd = open(ft_src, O_DIRECTORY | O_RDONLY | O_CLOEXEC),
+	     src_fd != -1);
+	TESTEQUAL(install_elf_bpf("test_bpf.bpf", "test_trace",
+				  &bpf_fd, NULL, NULL), 0);
+	TESTEQUAL(mount_fuse(mount_dir, bpf_fd, src_fd, &fuse_dev), 0);
+
+	TESTSYSCALL(s_mkdir(s_path(s(mount_dir), s(dir_name)), 0777));
+	TESTEQUAL(bpf_test_trace("mkdir"), 0);
+	TESTSYSCALL(s_stat(s_path(s(ft_src), s(dir_name)), &st));
+	TESTSYSCALL(s_rename(s_path(s(mount_dir), s(dir_name)),
+			     s_path(s(mount_dir), s(dir_name2))));
+	TESTEQUAL(s_stat(s_path(s(ft_src), s(dir_name)), &st), -1);
+	TESTEQUAL(errno, ENOENT);
+	TESTSYSCALL(s_stat(s_path(s(ft_src), s(dir_name2)), &st));
+	result = TEST_SUCCESS;
+out:
+	close(fuse_dev);
+	umount(mount_dir);
+	close(bpf_fd);
+	close(src_fd);
+	return result;
+}
+
+static int bpf_test_file_rename(const char *mount_dir)
+{
+	const char *dir = "dir";
+	const char *file1 = "file1";
+	const char *file2 = "file2";
+	int result = TEST_FAILURE;
+	int src_fd = -1;
+	int bpf_fd = -1;
+	int fuse_dev = -1;
+	int fd = -1;
+
+	TEST(src_fd = open(ft_src, O_DIRECTORY | O_RDONLY | O_CLOEXEC),
+	     src_fd != -1);
+	TESTEQUAL(install_elf_bpf("test_bpf.bpf", "test_trace",
+				  &bpf_fd, NULL, NULL), 0);
+	TESTEQUAL(mount_fuse(mount_dir, bpf_fd, src_fd, &fuse_dev), 0);
+
+	TESTSYSCALL(s_mkdir(s_path(s(mount_dir), s(dir)), 0777));
+	TEST(fd = s_creat(s_pathn(3, s(mount_dir), s(dir), s(file1)), 0777),
+	     fd != -1);
+	TESTSYSCALL(s_rename(s_pathn(3, s(mount_dir), s(dir), s(file1)),
+			     s_pathn(3, s(mount_dir), s(dir), s(file2))));
+	result = TEST_SUCCESS;
+out:
+	close(fd);
+	umount(mount_dir);
+	close(fuse_dev);
+	close(bpf_fd);
+	close(src_fd);
+	return result;
+}
+
+static int mmap_test(const char *mount_dir)
+{
+	const char *file = "file";
+	int result = TEST_FAILURE;
+	int src_fd = -1;
+	int fuse_dev = -1;
+	int fd = -1;
+	char *addr = NULL;
+
+	TEST(src_fd = open(ft_src, O_DIRECTORY | O_RDONLY | O_CLOEXEC),
+	     src_fd != -1);
+	TESTEQUAL(mount_fuse(mount_dir, -1, src_fd, &fuse_dev), 0);
+	TEST(fd = s_open(s_path(s(mount_dir), s(file)),
+			 O_CREAT | O_RDWR | O_CLOEXEC, 0777),
+	     fd != -1);
+	TESTSYSCALL(fallocate(fd, 0, 4096, SEEK_CUR));
+	TEST(addr = mmap(NULL, 4096, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0),
+	     addr != (void *) -1);
+	memset(addr, 'a', 4096);
+
+	result = TEST_SUCCESS;
+out:
+	munmap(addr, 4096);
+	close(fd);
+	umount(mount_dir);
+	close(fuse_dev);
+	close(src_fd);
+	return result;
+}
+
+static int readdir_perms_test(const char *mount_dir)
+{
+	int result = TEST_FAILURE;
+	struct __user_cap_header_struct uchs = { _LINUX_CAPABILITY_VERSION_3 };
+	struct __user_cap_data_struct ucds[2];
+	int src_fd = -1;
+	int fuse_dev = -1;
+	DIR *dir = NULL;
+
+	/* Must remove capabilities for this test. */
+	TESTSYSCALL(syscall(SYS_capget, &uchs, ucds));
+	ucds[0].effective &= ~(1 << CAP_DAC_OVERRIDE | 1 << CAP_DAC_READ_SEARCH);
+	TESTSYSCALL(syscall(SYS_capset, &uchs, ucds));
+
+	/* This is what we are testing in fuseland. First test without fuse, */
+	TESTSYSCALL(mkdir("test", 0111));
+	TEST(dir = opendir("test"), dir == NULL);
+	closedir(dir);
+	dir = NULL;
+
+	TEST(src_fd = open(ft_src, O_DIRECTORY | O_RDONLY | O_CLOEXEC),
+	     src_fd != -1);
+	TESTEQUAL(mount_fuse(mount_dir, -1, src_fd, &fuse_dev), 0);
+
+	TESTSYSCALL(s_mkdir(s_path(s(mount_dir), s("test")), 0111));
+	TEST(dir = s_opendir(s_path(s(mount_dir), s("test"))), dir == NULL);
+
+	result = TEST_SUCCESS;
+out:
+	ucds[0].effective |= 1 << CAP_DAC_OVERRIDE | 1 << CAP_DAC_READ_SEARCH;
+	syscall(SYS_capset, &uchs, ucds);
+
+	closedir(dir);
+	s_rmdir(s_path(s(mount_dir), s("test")));
+	umount(mount_dir);
+	close(fuse_dev);
+	close(src_fd);
+	rmdir("test");
+	return result;
+}
+
+static int inotify_test(const char *mount_dir)
+{
+	int result = TEST_FAILURE;
+	int src_fd = -1;
+	int fuse_dev = -1;
+	struct s dir;
+	int inotify_fd = -1;
+	int watch;
+	int fd = -1;
+	char buffer[sizeof(struct inotify_event) + NAME_MAX + 1];
+
+	TEST(src_fd = open(ft_src, O_DIRECTORY | O_RDONLY | O_CLOEXEC),
+	     src_fd != -1);
+	TESTEQUAL(mount_fuse(mount_dir, -1, src_fd, &fuse_dev), 0);
+
+	TEST(inotify_fd = inotify_init1(IN_CLOEXEC), inotify_fd != -1);
+	dir = s_path(s(mount_dir), s("dir"));
+	TESTSYSCALL(mkdir(dir.s, 0777));
+	TEST(watch = inotify_add_watch(inotify_fd, dir.s, IN_CREATE), watch);
+	TEST(fd = s_creat(s_path(s(ft_src), s("dir/file")), 0777), fd != -1);
+	// buffer will be two struct lengths, as "file" gets rounded up to the
+	// next multiple of struct inotify_event
+	TESTEQUAL(read(inotify_fd, &buffer, sizeof(buffer)),
+		  sizeof(struct inotify_event) * 2);
+
+	result = TEST_SUCCESS;
+out:
+	close(fd);
+	s_unlink(s_path(s(ft_src), s("dir/file")));
+	close(inotify_fd);
+	rmdir(dir.s);
+	free(dir.s);
+	umount(mount_dir);
+	close(fuse_dev);
+	close(src_fd);
+	return result;
+}
+
+static int bpf_test_statfs(const char *mount_dir)
+{
+	int result = TEST_FAILURE;
+	int src_fd = -1;
+	int bpf_fd = -1;
+	int fuse_dev = -1;
+	int fd = -1;
+	struct statfs st;
+
+	TEST(src_fd = open(ft_src, O_DIRECTORY | O_RDONLY | O_CLOEXEC),
+	     src_fd != -1);
+	TESTEQUAL(install_elf_bpf("test_bpf.bpf", "test_trace",
+				  &bpf_fd, NULL, NULL), 0);
+	TESTEQUAL(mount_fuse(mount_dir, bpf_fd, src_fd, &fuse_dev), 0);
+
+	TESTSYSCALL(s_statfs(s(mount_dir), &st));
+	TESTEQUAL(bpf_test_trace("statfs"), 0);
+	TESTEQUAL(st.f_type, 0x65735546);
+	result = TEST_SUCCESS;
+out:
+	close(fd);
+	umount(mount_dir);
+	close(fuse_dev);
+	close(bpf_fd);
+	close(src_fd);
+	return result;
+}
+
+static int bpf_test_lseek(const char *mount_dir)
+{
+	const char *file = "real";
+	const char *test_data = "data";
+	int result = TEST_FAILURE;
+	int src_fd = -1;
+	int bpf_fd = -1;
+	int fuse_dev = -1;
+	int fd = -1;
+
+	TEST(src_fd = open(ft_src, O_DIRECTORY | O_RDONLY | O_CLOEXEC),
+	     src_fd != -1);
+	TEST(fd = openat(src_fd, file, O_CREAT | O_RDWR | O_CLOEXEC, 0777),
+	     fd != -1);
+	TESTEQUAL(write(fd, test_data, strlen(test_data)), strlen(test_data));
+	TESTSYSCALL(close(fd));
+	fd = -1;
+	TESTEQUAL(install_elf_bpf("test_bpf.bpf", "test_trace",
+				  &bpf_fd, NULL, NULL), 0);
+	TESTEQUAL(mount_fuse(mount_dir, bpf_fd, src_fd, &fuse_dev), 0);
+
+	TEST(fd = s_open(s_path(s(mount_dir), s(file)), O_RDONLY | O_CLOEXEC),
+	     fd != -1);
+	TESTEQUAL(lseek(fd, 3, SEEK_SET), 3);
+	TESTEQUAL(bpf_test_trace("lseek"), 0);
+	TESTEQUAL(lseek(fd, 5, SEEK_END), 9);
+	TESTEQUAL(bpf_test_trace("lseek"), 0);
+	TESTEQUAL(lseek(fd, 1, SEEK_CUR), 10);
+	TESTEQUAL(bpf_test_trace("lseek"), 0);
+	TESTEQUAL(lseek(fd, 1, SEEK_DATA), 1);
+	TESTEQUAL(bpf_test_trace("lseek"), 0);
+	result = TEST_SUCCESS;
+out:
+	close(fd);
+	umount(mount_dir);
+	close(fuse_dev);
+	close(bpf_fd);
+	close(src_fd);
+	return result;
+}
+
+/*
+ * State:
+ * Original: dst/folder1/content.txt
+ *                  ^
+ *                  |
+ *                  |
+ * Backing:  src/folder1/content.txt
+ *
+ * Step 1:  open(folder1) - set backing to src/folder1
+ * Check 1: cat(content.txt) - check not receiving call on the fuse daemon
+ *                             and content is the same
+ * Step 2:  readdirplus(dst)
+ * Check 2: cat(content.txt) - check not receiving call on the fuse daemon
+ *                             and content is the same
+ */
+static int bpf_test_readdirplus_not_overriding_backing(const char *mount_dir)
+{
+	const char *folder1 = "folder1";
+	const char *content_file = "content.txt";
+	const char *content = "hello world";
+
+	int result = TEST_FAILURE;
+	int fuse_dev = -1;
+	int src_fd = -1;
+	int content_fd = -1;
+	FUSE_DECLARE_DAEMON;
+
+	TESTSYSCALL(s_mkdir(s_path(s(ft_src), s(folder1)), 0777));
+	TEST(content_fd = s_creat(s_pathn(3, s(ft_src), s(folder1), s(content_file)), 0777),
+		content_fd != -1);
+	TESTEQUAL(write(content_fd, content, strlen(content)), strlen(content));
+	TESTEQUAL(mount_fuse_no_init(mount_dir, -1, -1, &fuse_dev), 0);
+
+	FUSE_START_DAEMON();
+	if (action) {
+		DIR *open_mount_dir = NULL;
+		struct dirent *mount_dirent;
+		int dst_folder1_fd = -1;
+		int dst_content_fd = -1;
+		char content_buffer[12];
+
+		// Step 1: Lookup folder1
+		TESTERR(dst_folder1_fd = s_open(s_path(s(mount_dir), s(folder1)),
+			O_RDONLY | O_CLOEXEC), dst_folder1_fd != -1);
+
+		// Check 1: Read content file (backed)
+		TESTERR(dst_content_fd =
+			s_open(s_pathn(3, s(mount_dir), s(folder1), s(content_file)),
+			O_RDONLY | O_CLOEXEC), dst_content_fd != -1);
+
+		TESTEQUAL(read(dst_content_fd, content_buffer, strlen(content)),
+			  strlen(content));
+		TESTEQUAL(strncmp(content, content_buffer, strlen(content)), 0);
+
+		TESTSYSCALL(close(dst_content_fd));
+		dst_content_fd = -1;
+		TESTSYSCALL(close(dst_folder1_fd));
+		dst_folder1_fd = -1;
+		memset(content_buffer, 0, strlen(content));
+
+		// Step 2: readdir folder 1
+		TEST(open_mount_dir = s_opendir(s(mount_dir)),
+			open_mount_dir != NULL);
+		TEST(mount_dirent = readdir(open_mount_dir), mount_dirent != NULL);
+		TESTSYSCALL(closedir(open_mount_dir));
+		open_mount_dir = NULL;
+
+		// Check 2: Read content file again (must be backed)
+		TESTERR(dst_content_fd =
+			s_open(s_pathn(3, s(mount_dir), s(folder1), s(content_file)),
+			O_RDONLY | O_CLOEXEC), dst_content_fd != -1);
+
+		TESTEQUAL(read(dst_content_fd, content_buffer, strlen(content)),
+			  strlen(content));
+		TESTEQUAL(strncmp(content, content_buffer, strlen(content)), 0);
+
+		TESTSYSCALL(close(dst_content_fd));
+		dst_content_fd = -1;
+	} else {
+		size_t read_size = 0;
+		struct fuse_in_header *in_header = (struct fuse_in_header *)bytes_in;
+		struct fuse_read_out *read_out = NULL;
+		struct fuse_attr attr = {};
+		int backing_fd = -1;
+		DECL_FUSE_IN(open);
+		DECL_FUSE_IN(getattr);
+
+		TESTFUSEINITFLAGS(FUSE_DO_READDIRPLUS | FUSE_READDIRPLUS_AUTO);
+
+		// Step 1: Lookup folder 1 with backing
+		TESTFUSELOOKUP(folder1, 0);
+		TESTSYSCALL(s_fuse_attr(s_path(s(ft_src), s(folder1)), &attr));
+		TEST(backing_fd = s_open(s_path(s(ft_src), s(folder1)),
+					 O_DIRECTORY | O_RDONLY | O_CLOEXEC),
+		     backing_fd != -1);
+		TESTFUSEOUT2(fuse_entry_out, ((struct fuse_entry_out) {
+				.nodeid = attr.ino,
+				.generation = 0,
+				.entry_valid = UINT64_MAX,
+				.attr_valid = UINT64_MAX,
+				.entry_valid_nsec = UINT32_MAX,
+				.attr_valid_nsec = UINT32_MAX,
+				.attr = attr,
+			     }), fuse_entry_bpf_out, ((struct fuse_entry_bpf_out) {
+				.backing_action = FUSE_ACTION_REPLACE,
+				.backing_fd = backing_fd,
+			     }));
+		TESTSYSCALL(close(backing_fd));
+
+		// Step 2: Open root dir
+		TESTFUSEIN(FUSE_OPENDIR, open_in);
+		TESTFUSEOUT1(fuse_open_out, ((struct fuse_open_out) {
+			.fh = 100,
+			.open_flags = open_in->flags
+		}));
+
+		// Step 2: Handle getattr
+		TESTFUSEIN(FUSE_GETATTR, getattr_in);
+		TESTSYSCALL(s_fuse_attr(s(ft_src), &attr));
+		TESTFUSEOUT1(fuse_attr_out, ((struct fuse_attr_out) {
+			.attr_valid = UINT64_MAX,
+			.attr_valid_nsec = UINT32_MAX,
+			.attr = attr
+		}));
+
+		// Step 2: Handle readdirplus
+		read_size = read(fuse_dev, bytes_in, sizeof(bytes_in));
+		TESTEQUAL(in_header->opcode, FUSE_READDIRPLUS);
+
+		struct fuse_direntplus *dirent_plus =
+			(struct fuse_direntplus *) (bytes_in + read_size);
+		struct fuse_dirent dirent;
+		struct fuse_entry_out entry_out;
+
+		read_out = (struct fuse_read_out *) (bytes_in +
+					sizeof(*in_header) +
+					sizeof(struct fuse_read_in));
+
+		TESTSYSCALL(s_fuse_attr(s_path(s(ft_src), s(folder1)), &attr));
+
+		dirent = (struct fuse_dirent) {
+			.ino = attr.ino,
+			.off = 1,
+			.namelen = strlen(folder1),
+			.type = DT_REG
+		};
+		entry_out = (struct fuse_entry_out) {
+			.nodeid = attr.ino,
+			.generation = 0,
+			.entry_valid = UINT64_MAX,
+			.attr_valid = UINT64_MAX,
+			.entry_valid_nsec = UINT32_MAX,
+			.attr_valid_nsec = UINT32_MAX,
+			.attr = attr
+		};
+		*dirent_plus = (struct fuse_direntplus) {
+			.dirent = dirent,
+			.entry_out = entry_out
+		};
+
+		strcpy((char *)(bytes_in + read_size + sizeof(*dirent_plus)), folder1);
+		read_size += FUSE_DIRENT_ALIGN(sizeof(*dirent_plus) + strlen(folder1) +
+					1);
+		TESTFUSEDIROUTREAD(read_out,
+				bytes_in +
+				sizeof(struct fuse_in_header) +
+				sizeof(struct fuse_read_in) +
+				sizeof(struct fuse_read_out),
+				read_size - sizeof(struct fuse_in_header) -
+					sizeof(struct fuse_read_in) -
+					sizeof(struct fuse_read_out));
+		exit(TEST_SUCCESS);
+	}
+	FUSE_END_DAEMON();
+	close(fuse_dev);
+	close(content_fd);
+	close(src_fd);
+	umount(mount_dir);
+	return result;
+}
+
+static int bpf_test_no_readdirplus_without_nodeid(const char *mount_dir)
+{
+	const char *folder1 = "folder1";
+	const char *folder2 = "folder2";
+	int result = TEST_FAILURE;
+	int fuse_dev = -1;
+	int src_fd = -1;
+	int content_fd = -1;
+	int bpf_fd = -1;
+	FUSE_DECLARE_DAEMON;
+
+	TESTEQUAL(install_elf_bpf("test_bpf.bpf", "test_readdirplus",
+					  &bpf_fd, NULL, NULL), 0);
+	TESTSYSCALL(s_mkdir(s_path(s(ft_src), s(folder1)), 0777));
+	TESTSYSCALL(s_mkdir(s_path(s(ft_src), s(folder2)), 0777));
+	TESTEQUAL(mount_fuse_no_init(mount_dir, -1, -1, &fuse_dev), 0);
+	FUSE_START_DAEMON();
+	if (action) {
+		DIR *open_dir = NULL;
+		struct dirent *dirent;
+
+		// Folder 1: Readdir with no nodeid
+		TEST(open_dir = s_opendir(s_path(s(ft_dst), s(folder1))),
+				open_dir != NULL);
+		TEST(dirent = readdir(open_dir), dirent == NULL);
+		TESTCOND(errno == EINVAL);
+		TESTSYSCALL(closedir(open_dir));
+		open_dir = NULL;
+
+		// Folder 2: Readdir with a nodeid
+		TEST(open_dir = s_opendir(s_path(s(ft_dst), s(folder2))),
+				open_dir != NULL);
+		TEST(dirent = readdir(open_dir), dirent == NULL);
+		TESTCOND(errno == EINVAL);
+		TESTSYSCALL(closedir(open_dir));
+		open_dir = NULL;
+	} else {
+		size_t read_size;
+		struct fuse_in_header *in_header = (struct fuse_in_header *)bytes_in;
+		struct fuse_attr attr = {};
+		int backing_fd = -1;
+
+		TESTFUSEINITFLAGS(FUSE_DO_READDIRPLUS | FUSE_READDIRPLUS_AUTO);
+
+		// folder 1: Set 0 as nodeid, Expect READDIR
+		TESTFUSELOOKUP(folder1, 0);
+		TEST(backing_fd = s_open(s_path(s(ft_src), s(folder1)),
+					 O_DIRECTORY | O_RDONLY | O_CLOEXEC),
+		     backing_fd != -1);
+		TESTFUSEOUT2(fuse_entry_out, ((struct fuse_entry_out) {
+				.nodeid = 0,
+				.generation = 0,
+				.entry_valid = UINT64_MAX,
+				.attr_valid = UINT64_MAX,
+				.entry_valid_nsec = UINT32_MAX,
+				.attr_valid_nsec = UINT32_MAX,
+				.attr = attr,
+			     }), fuse_entry_bpf_out, ((struct fuse_entry_bpf_out) {
+				.backing_action = FUSE_ACTION_REPLACE,
+				.backing_fd = backing_fd,
+				.bpf_action = FUSE_ACTION_REPLACE,
+				.bpf_fd = bpf_fd,
+			     }));
+		TESTSYSCALL(close(backing_fd));
+		TEST(read_size = read(fuse_dev, bytes_in, sizeof(bytes_in)), read_size > 0);
+		TESTEQUAL(in_header->opcode, FUSE_READDIR);
+		TESTFUSEOUTERROR(-EINVAL);
+
+		// folder 2: Set 10 as nodeid, Expect READDIRPLUS
+		TESTFUSELOOKUP(folder2, 0);
+		TEST(backing_fd = s_open(s_path(s(ft_src), s(folder2)),
+					 O_DIRECTORY | O_RDONLY | O_CLOEXEC),
+		     backing_fd != -1);
+		TESTFUSEOUT2(fuse_entry_out, ((struct fuse_entry_out) {
+				.nodeid = 10,
+				.generation = 0,
+				.entry_valid = UINT64_MAX,
+				.attr_valid = UINT64_MAX,
+				.entry_valid_nsec = UINT32_MAX,
+				.attr_valid_nsec = UINT32_MAX,
+				.attr = attr,
+			     }), fuse_entry_bpf_out, ((struct fuse_entry_bpf_out) {
+				.backing_action = FUSE_ACTION_REPLACE,
+				.backing_fd = backing_fd,
+				.bpf_action = FUSE_ACTION_REPLACE,
+				.bpf_fd = bpf_fd,
+			     }));
+		TESTSYSCALL(close(backing_fd));
+		TEST(read_size = read(fuse_dev, bytes_in, sizeof(bytes_in)), read_size > 0);
+		TESTEQUAL(in_header->opcode, FUSE_READDIRPLUS);
+		TESTFUSEOUTERROR(-EINVAL);
+		exit(TEST_SUCCESS);
+	}
+	FUSE_END_DAEMON();
+	close(fuse_dev);
+	close(content_fd);
+	close(src_fd);
+	close(bpf_fd);
+	umount(mount_dir);
+	return result;
+}
+
+/*
+ * State:
+ * Original: dst/folder1/content.txt
+ *                  ^
+ *                  |
+ *                  |
+ * Backing:  src/folder1/content.txt
+ *
+ * Step 1:  open(folder1) - lookup folder1 with entry_timeout set to 0
+ * Step 2:  open(folder1) - lookup folder1 again to trigger revalidate wich will
+ *                          set backing fd
+ *
+ * Check 1: cat(content.txt) - check not receiving call on the fuse daemon
+ *                             and content is the same
+ */
+static int bpf_test_revalidate_handle_backing_fd(const char *mount_dir)
+{
+	const char *folder1 = "folder1";
+	const char *content_file = "content.txt";
+	const char *content = "hello world";
+	int result = TEST_FAILURE;
+	int fuse_dev = -1;
+	int src_fd = -1;
+	int content_fd = -1;
+	FUSE_DECLARE_DAEMON;
+
+	TESTSYSCALL(s_mkdir(s_path(s(ft_src), s(folder1)), 0777));
+	TEST(content_fd = s_creat(s_pathn(3, s(ft_src), s(folder1), s(content_file)), 0777),
+		content_fd != -1);
+	TESTEQUAL(write(content_fd, content, strlen(content)), strlen(content));
+	TESTSYSCALL(close(content_fd));
+	content_fd = -1;
+	TESTEQUAL(mount_fuse_no_init(mount_dir, -1, -1, &fuse_dev), 0);
+	FUSE_START_DAEMON();
+	if (action) {
+		int dst_folder1_fd = -1;
+		int dst_content_fd = -1;
+		char content_buffer[9] = {0};
+		// Step 1: Lookup folder1
+		TESTERR(dst_folder1_fd = s_open(s_path(s(mount_dir), s(folder1)),
+			O_RDONLY | O_CLOEXEC), dst_folder1_fd != -1);
+		TESTSYSCALL(close(dst_folder1_fd));
+		dst_folder1_fd = -1;
+		// Step 2: Lookup folder1 again
+		TESTERR(dst_folder1_fd = s_open(s_path(s(mount_dir), s(folder1)),
+			O_RDONLY | O_CLOEXEC), dst_folder1_fd != -1);
+		TESTSYSCALL(close(dst_folder1_fd));
+		dst_folder1_fd = -1;
+		// Check 1: Read content file (must be backed)
+		TESTERR(dst_content_fd =
+			s_open(s_pathn(3, s(mount_dir), s(folder1), s(content_file)),
+			O_RDONLY | O_CLOEXEC), dst_content_fd != -1);
+		TESTEQUAL(read(dst_content_fd, content_buffer, strlen(content)),
+			  strlen(content));
+		TESTEQUAL(strncmp(content, content_buffer, strlen(content)), 0);
+		TESTSYSCALL(close(dst_content_fd));
+		dst_content_fd = -1;
+	} else {
+		struct fuse_attr attr = {};
+		int backing_fd = -1;
+
+		TESTFUSEINITFLAGS(FUSE_DO_READDIRPLUS | FUSE_READDIRPLUS_AUTO);
+		// Step 1: Lookup folder1 set entry_timeout to 0 to trigger
+		// revalidate later
+		TESTFUSELOOKUP(folder1, 0);
+		TESTSYSCALL(s_fuse_attr(s_path(s(ft_src), s(folder1)), &attr));
+		TEST(backing_fd = s_open(s_path(s(ft_src), s(folder1)),
+					 O_DIRECTORY | O_RDONLY | O_CLOEXEC),
+		     backing_fd != -1);
+		TESTFUSEOUT2(fuse_entry_out, ((struct fuse_entry_out) {
+				.nodeid = attr.ino,
+				.generation = 0,
+				.entry_valid = 0,
+				.attr_valid = UINT64_MAX,
+				.entry_valid_nsec = 0,
+				.attr_valid_nsec = UINT32_MAX,
+				.attr = attr,
+			     }), fuse_entry_bpf_out, ((struct fuse_entry_bpf_out) {
+				.backing_action = FUSE_ACTION_REPLACE,
+				.backing_fd = backing_fd,
+			     }));
+		TESTSYSCALL(close(backing_fd));
+		// Step 1: Lookup folder1 as a reaction to revalidate call
+		// This attempts to change the backing node, which is not allowed on revalidate
+		TESTFUSELOOKUP(folder1, 0);
+		TESTSYSCALL(s_fuse_attr(s_path(s(ft_src), s(folder1)), &attr));
+		TEST(backing_fd = s_open(s_path(s(ft_src), s(folder1)),
+					 O_DIRECTORY | O_RDONLY | O_CLOEXEC),
+		     backing_fd != -1);
+		TESTFUSEOUT2(fuse_entry_out, ((struct fuse_entry_out) {
+				.nodeid = attr.ino,
+				.generation = 0,
+				.entry_valid = UINT64_MAX,
+				.attr_valid = UINT64_MAX,
+				.entry_valid_nsec = UINT32_MAX,
+				.attr_valid_nsec = UINT32_MAX,
+				.attr = attr,
+			     }), fuse_entry_bpf_out, ((struct fuse_entry_bpf_out) {
+				.backing_action = FUSE_ACTION_REPLACE,
+				.backing_fd = backing_fd,
+			     }));
+		TESTSYSCALL(close(backing_fd));
+
+		// Lookup folder1 as a reaction to failed revalidate
+		TESTFUSELOOKUP(folder1, 0);
+		TESTSYSCALL(s_fuse_attr(s_path(s(ft_src), s(folder1)), &attr));
+		TEST(backing_fd = s_open(s_path(s(ft_src), s(folder1)),
+					 O_DIRECTORY | O_RDONLY | O_CLOEXEC),
+		     backing_fd != -1);
+		TESTFUSEOUT2(fuse_entry_out, ((struct fuse_entry_out) {
+				.nodeid = attr.ino,
+				.generation = 0,
+				.entry_valid = UINT64_MAX,
+				.attr_valid = UINT64_MAX,
+				.entry_valid_nsec = UINT32_MAX,
+				.attr_valid_nsec = UINT32_MAX,
+				.attr = attr,
+			     }), fuse_entry_bpf_out, ((struct fuse_entry_bpf_out) {
+				.backing_action = FUSE_ACTION_REPLACE,
+				.backing_fd = backing_fd,
+			     }));
+		TESTSYSCALL(close(backing_fd));
+		exit(TEST_SUCCESS);
+	}
+	FUSE_END_DAEMON();
+	close(fuse_dev);
+	close(content_fd);
+	close(src_fd);
+	umount(mount_dir);
+	return result;
+}
+
+static int bpf_test_lookup_postfilter(const char *mount_dir)
+{
+	const char *file1_name = "file1";
+	const char *file2_name = "file2";
+	const char *file3_name = "file3";
+	int result = TEST_FAILURE;
+	int bpf_fd = -1;
+	int src_fd = -1;
+	int fuse_dev = -1;
+	int file_fd = -1;
+	FUSE_DECLARE_DAEMON;
+
+	TEST(file_fd = s_creat(s_path(s(ft_src), s(file1_name)), 0777),
+	     file_fd != -1);
+	TESTSYSCALL(close(file_fd));
+	TEST(file_fd = s_creat(s_path(s(ft_src), s(file2_name)), 0777),
+	     file_fd != -1);
+	TESTSYSCALL(close(file_fd));
+	file_fd = -1;
+	TESTEQUAL(install_elf_bpf("test_bpf.bpf", "test_lookup_postfilter",
+					  &bpf_fd, NULL, NULL), 0);
+	TEST(src_fd = open(ft_src, O_DIRECTORY | O_RDONLY | O_CLOEXEC),
+	     src_fd != -1);
+	TESTEQUAL(mount_fuse(mount_dir, bpf_fd, src_fd, &fuse_dev), 0);
+	FUSE_START_DAEMON();
+	if (action) {
+		int fd = -1;
+
+		TESTEQUAL(s_open(s_path(s(mount_dir), s(file1_name)), O_RDONLY),
+			  -1);
+		TESTEQUAL(errno, ENOENT);
+		TEST(fd = s_open(s_path(s(mount_dir), s(file2_name)), O_RDONLY),
+		     fd != -1);
+		TESTSYSCALL(close(fd));
+		TESTEQUAL(s_open(s_path(s(mount_dir), s(file3_name)), O_RDONLY),
+			  -1);
+	} else {
+		struct fuse_in_postfilter_header *in_header =
+				(struct fuse_in_postfilter_header *)bytes_in;
+		struct fuse_entry_out *feo;
+		struct fuse_entry_bpf_out *febo;
+
+		TESTFUSELOOKUP(file1_name, FUSE_POSTFILTER);
+		TESTFUSEOUTERROR(-ENOENT);
+
+		TESTFUSELOOKUP(file2_name, FUSE_POSTFILTER);
+		feo = (struct fuse_entry_out *) (bytes_in +
+			sizeof(struct fuse_in_header) +	strlen(file2_name) + 1);
+		febo = (struct fuse_entry_bpf_out *) ((char *)feo +
+			sizeof(*feo));
+		TESTFUSEOUT2(fuse_entry_out, *feo, fuse_entry_bpf_out, *febo);
+
+		TESTFUSELOOKUP(file3_name, FUSE_POSTFILTER);
+		TESTEQUAL(in_header->error_in, -ENOENT);
+		TESTFUSEOUTERROR(-ENOENT);
+		exit(TEST_SUCCESS);
+	}
+	FUSE_END_DAEMON();
+	close(file_fd);
+	close(fuse_dev);
+	umount(mount_dir);
+	close(src_fd);
+	close(bpf_fd);
+	return result;
+}
+
+static void parse_range(const char *ranges, bool *run_test, size_t tests)
+{
+	size_t i;
+	char *range;
+
+	for (i = 0; i < tests; ++i)
+		run_test[i] = false;
+
+	range = strtok(optarg, ",");
+	while (range) {
+		char *dash = strchr(range, '-');
+
+		if (dash) {
+			size_t start = 1, end = tests;
+			char *end_ptr;
+
+			if (dash > range) {
+				start = strtol(range, &end_ptr, 10);
+				if (*end_ptr != '-' || start <= 0 || start > tests)
+					ksft_exit_fail_msg("Bad range\n");
+			}
+
+			if (dash[1]) {
+				end = strtol(dash + 1, &end_ptr, 10);
+				if (*end_ptr || end <= start || end > tests)
+					ksft_exit_fail_msg("Bad range\n");
+			}
+
+			for (i = start; i <= end; ++i)
+				run_test[i - 1] = true;
+		} else {
+			char *end;
+			long value = strtol(range, &end, 10);
+
+			if (*end || value <= 0 || value > tests)
+				ksft_exit_fail_msg("Bad range\n");
+			run_test[value - 1] = true;
+		}
+		range = strtok(NULL, ",");
+	}
+}
+
+static int parse_options(int argc, char *const *argv, bool *run_test,
+			 size_t tests)
+{
+	signed char c;
+
+	while ((c = getopt(argc, argv, "f:t:v")) != -1)
+		switch (c) {
+		case 'f':
+			test_options.file = strtol(optarg, NULL, 10);
+			break;
+
+		case 't':
+			parse_range(optarg, run_test, tests);
+			break;
+
+		case 'v':
+			test_options.verbose = true;
+			break;
+
+		default:
+			return -EINVAL;
+		}
+
+	return 0;
+}
+
+struct test_case {
+	int (*pfunc)(const char *dir);
+	const char *name;
+};
+
+static void run_one_test(const char *mount_dir,
+			 const struct test_case *test_case)
+{
+	ksft_print_msg("Running %s\n", test_case->name);
+	if (test_case->pfunc(mount_dir) == TEST_SUCCESS)
+		ksft_test_result_pass("%s\n", test_case->name);
+	else
+		ksft_test_result_fail("%s\n", test_case->name);
+}
+
+int main(int argc, char *argv[])
+{
+	char *mount_dir = NULL;
+	char *src_dir = NULL;
+	int i;
+	int fd, count;
+
+#define MAKE_TEST(test)                                                        \
+	{                                                                      \
+		test, #test                                                    \
+	}
+	const struct test_case cases[] = {
+		MAKE_TEST(basic_test),
+		MAKE_TEST(bpf_test_real),
+		MAKE_TEST(bpf_test_partial),
+		MAKE_TEST(bpf_test_attrs),
+		MAKE_TEST(bpf_test_readdir),
+		MAKE_TEST(bpf_test_creat),
+		MAKE_TEST(bpf_test_hidden_entries),
+		MAKE_TEST(bpf_test_dir),
+		MAKE_TEST(bpf_test_file_early_close),
+		MAKE_TEST(bpf_test_file_late_close),
+		MAKE_TEST(bpf_test_mknod),
+		MAKE_TEST(bpf_test_largedir),
+		MAKE_TEST(bpf_test_link),
+		MAKE_TEST(bpf_test_symlink),
+		MAKE_TEST(bpf_test_xattr),
+		MAKE_TEST(bpf_test_redact_readdir),
+		MAKE_TEST(bpf_test_set_backing),
+		MAKE_TEST(bpf_test_remove_backing),
+		MAKE_TEST(bpf_test_dir_rename),
+		MAKE_TEST(bpf_test_file_rename),
+		MAKE_TEST(bpf_test_alter_errcode_bpf),
+		MAKE_TEST(bpf_test_alter_errcode_userspace),
+		MAKE_TEST(mmap_test),
+		MAKE_TEST(readdir_perms_test),
+		MAKE_TEST(inotify_test),
+		MAKE_TEST(bpf_test_statfs),
+		MAKE_TEST(bpf_test_lseek),
+		MAKE_TEST(bpf_test_readdirplus_not_overriding_backing),
+		MAKE_TEST(bpf_test_no_readdirplus_without_nodeid),
+		MAKE_TEST(bpf_test_revalidate_handle_backing_fd),
+		MAKE_TEST(bpf_test_lookup_postfilter),
+	};
+#undef MAKE_TEST
+
+	bool run_test[ARRAY_SIZE(cases)];
+
+	for (int i = 0; i < ARRAY_SIZE(cases); ++i)
+		run_test[i] = true;
+
+	if (parse_options(argc, argv, run_test, ARRAY_SIZE(cases)))
+		ksft_exit_fail_msg("Bad options\n");
+
+	// Seed randomness pool for testing on QEMU
+	// NOTE - this abuses the concept of randomness - do *not* ever do this
+	// on a machine for production use - the device will think it has good
+	// randomness when it does not.
+	fd = open("/dev/urandom", O_WRONLY | O_CLOEXEC);
+	count = 4096;
+	for (int i = 0; i < 128; ++i)
+		ioctl(fd, RNDADDTOENTCNT, &count);
+	close(fd);
+
+	ksft_print_header();
+
+	if (geteuid() != 0)
+		ksft_print_msg("Not a root, might fail to mount.\n");
+
+	if (tracing_on() != TEST_SUCCESS)
+		ksft_exit_fail_msg("Can't turn on tracing\n");
+
+	src_dir = setup_mount_dir(ft_src);
+	mount_dir = setup_mount_dir(ft_dst);
+	if (src_dir == NULL || mount_dir == NULL)
+		ksft_exit_fail_msg("Can't create a mount dir\n");
+
+	ksft_set_plan(ARRAY_SIZE(run_test));
+
+	for (i = 0; i < ARRAY_SIZE(run_test); ++i)
+		if (run_test[i]) {
+			delete_dir_tree(mount_dir, false);
+			delete_dir_tree(src_dir, false);
+			run_one_test(mount_dir, &cases[i]);
+		} else
+			ksft_cnt.ksft_xskip++;
+
+	umount2(mount_dir, MNT_FORCE);
+	delete_dir_tree(mount_dir, true);
+	delete_dir_tree(src_dir, true);
+	return !ksft_get_fail_cnt() ? ksft_exit_pass() : ksft_exit_fail();
+}
diff --git a/tools/testing/selftests/filesystems/fuse/test_bpf.c b/tools/testing/selftests/filesystems/fuse/test_bpf.c
new file mode 100644
index 0000000..032cb11
--- /dev/null
+++ b/tools/testing/selftests/filesystems/fuse/test_bpf.c
@@ -0,0 +1,507 @@
+// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
+// Copyright (c) 2022 Google LLC
+
+#include "test_fuse_bpf.h"
+
+SEC("test_readdir_redact")
+/* return FUSE_BPF_BACKING to use backing fs, 0 to pass to usermode */
+int readdir_test(struct fuse_bpf_args *fa)
+{
+	switch (fa->opcode) {
+	case FUSE_READDIR | FUSE_PREFILTER: {
+		const struct fuse_read_in *fri = fa->in_args[0].value;
+
+		bpf_printk("readdir %d", fri->fh);
+		return FUSE_BPF_BACKING | FUSE_BPF_POST_FILTER;
+	}
+
+	case FUSE_READDIR | FUSE_POSTFILTER: {
+		const struct fuse_read_in *fri = fa->in_args[0].value;
+
+		bpf_printk("readdir postfilter %x", fri->fh);
+		return FUSE_BPF_USER_FILTER;
+	}
+
+	default:
+		bpf_printk("opcode %d", fa->opcode);
+		return FUSE_BPF_BACKING;
+	}
+}
+
+SEC("test_trace")
+/* return FUSE_BPF_BACKING to use backing fs, 0 to pass to usermode */
+int trace_test(struct fuse_bpf_args *fa)
+{
+	switch (fa->opcode) {
+	case FUSE_LOOKUP | FUSE_PREFILTER: {
+		/* real and partial use backing file */
+		const char *name = fa->in_args[0].value;
+		bool backing = false;
+
+		if (strcmp(name, "real") == 0 || strcmp(name, "partial") == 0)
+			backing = true;
+
+		if (strcmp(name, "dir") == 0)
+			backing = true;
+		if (strcmp(name, "dir2") == 0)
+			backing = true;
+
+		if (strcmp(name, "file1") == 0)
+			backing = true;
+		if (strcmp(name, "file2") == 0)
+			backing = true;
+
+		bpf_printk("lookup %s %d", name, backing);
+		return backing ? FUSE_BPF_BACKING | FUSE_BPF_POST_FILTER : 0;
+	}
+
+	case FUSE_LOOKUP | FUSE_POSTFILTER: {
+		const char *name = fa->in_args[0].value;
+		struct fuse_entry_out *feo = fa->out_args[0].value;
+
+		if (strcmp(name, "real") == 0)
+			feo->nodeid = 5;
+		else if (strcmp(name, "partial") == 0)
+			feo->nodeid = 6;
+
+		bpf_printk("post-lookup %s %d", name, feo->nodeid);
+		return 0;
+	}
+
+	case FUSE_ACCESS | FUSE_PREFILTER: {
+		bpf_printk("Access: %d", fa->nodeid);
+		return FUSE_BPF_BACKING;
+	}
+
+	case FUSE_CREATE | FUSE_PREFILTER:
+		bpf_printk("Create: %d", fa->nodeid);
+		return FUSE_BPF_BACKING;
+
+	case FUSE_MKNOD | FUSE_PREFILTER: {
+		const struct fuse_mknod_in *fmi = fa->in_args[0].value;
+		const char *name = fa->in_args[1].value;
+
+		bpf_printk("mknod %s %x %x", name, fmi->rdev | fmi->mode, fmi->umask);
+		return FUSE_BPF_BACKING;
+	}
+
+	case FUSE_MKDIR | FUSE_PREFILTER: {
+		const struct fuse_mkdir_in *fmi = fa->in_args[0].value;
+		const char *name = fa->in_args[1].value;
+
+		bpf_printk("mkdir %s %x %x", name, fmi->mode, fmi->umask);
+		return FUSE_BPF_BACKING;
+	}
+
+	case FUSE_RMDIR | FUSE_PREFILTER: {
+		const char *name = fa->in_args[0].value;
+
+		bpf_printk("rmdir %s", name);
+		return FUSE_BPF_BACKING;
+	}
+
+	case FUSE_RENAME | FUSE_PREFILTER: {
+		const char *oldname = fa->in_args[1].value;
+		const char *newname = fa->in_args[2].value;
+
+		bpf_printk("rename from %s", oldname);
+		bpf_printk("rename to %s", newname);
+		return FUSE_BPF_BACKING;
+	}
+
+	case FUSE_RENAME2 | FUSE_PREFILTER: {
+		const struct fuse_rename2_in *fri = fa->in_args[0].value;
+		uint32_t flags = fri->flags;
+		const char *oldname = fa->in_args[1].value;
+		const char *newname = fa->in_args[2].value;
+
+		bpf_printk("rename(%x) from %s", flags, oldname);
+		bpf_printk("rename to %s", newname);
+		return FUSE_BPF_BACKING;
+	}
+
+	case FUSE_UNLINK | FUSE_PREFILTER: {
+		const char *name = fa->in_args[0].value;
+
+		bpf_printk("unlink %s", name);
+		return FUSE_BPF_BACKING;
+	}
+
+	case FUSE_LINK | FUSE_PREFILTER: {
+		const struct fuse_link_in *fli = fa->in_args[0].value;
+		const char *link_name = fa->in_args[1].value;
+
+		bpf_printk("link %d %s", fli->oldnodeid, link_name);
+		return FUSE_BPF_BACKING;
+	}
+
+	case FUSE_SYMLINK | FUSE_PREFILTER: {
+		const char *link_name = fa->in_args[0].value;
+		const char *link_dest = fa->in_args[1].value;
+
+		bpf_printk("symlink from %s", link_name);
+		bpf_printk("symlink to %s", link_dest);
+		return FUSE_BPF_BACKING;
+	}
+
+	case FUSE_READLINK | FUSE_PREFILTER: {
+		const char *link_name = fa->in_args[0].value;
+
+		bpf_printk("readlink from", link_name);
+		return FUSE_BPF_BACKING;
+	}
+
+	case FUSE_OPEN | FUSE_PREFILTER: {
+		int backing = 0;
+
+		switch (fa->nodeid) {
+		case 5:
+			backing = FUSE_BPF_BACKING;
+			break;
+
+		case 6:
+			backing = FUSE_BPF_BACKING | FUSE_BPF_POST_FILTER;
+			break;
+
+		default:
+			break;
+		}
+
+		bpf_printk("open %d %d", fa->nodeid, backing);
+		return backing;
+	}
+
+	case FUSE_OPEN | FUSE_POSTFILTER:
+		bpf_printk("open postfilter");
+		return FUSE_BPF_USER_FILTER;
+
+	case FUSE_READ | FUSE_PREFILTER: {
+		const struct fuse_read_in *fri = fa->in_args[0].value;
+
+		bpf_printk("read %llu %llu", fri->fh, fri->offset);
+		if (fri->fh == 1 && fri->offset == 0)
+			return 0;
+		return FUSE_BPF_BACKING;
+	}
+
+	case FUSE_GETATTR | FUSE_PREFILTER: {
+		/* real and partial use backing file */
+		int backing = 0;
+
+		switch (fa->nodeid) {
+		case 1:
+		case 5:
+		case 6:
+		/*
+		 * TODO: Find better solution
+		 * Add 100 to stop clang compiling to jump table which bpf hates
+		 */
+		case 100:
+			backing = FUSE_BPF_BACKING;
+			break;
+		}
+
+		bpf_printk("getattr %d %d", fa->nodeid, backing);
+		return backing;
+	}
+
+	case FUSE_SETATTR | FUSE_PREFILTER: {
+		/* real and partial use backing file */
+		int backing = 0;
+
+		switch (fa->nodeid) {
+		case 1:
+		case 5:
+		case 6:
+		/* TODO See above */
+		case 100:
+			backing = FUSE_BPF_BACKING;
+			break;
+		}
+
+		bpf_printk("setattr %d %d", fa->nodeid, backing);
+		return backing;
+	}
+
+	case FUSE_OPENDIR | FUSE_PREFILTER: {
+		int backing = 0;
+
+		switch (fa->nodeid) {
+		case 1:
+			backing = FUSE_BPF_BACKING | FUSE_BPF_POST_FILTER;
+			break;
+		}
+
+		bpf_printk("opendir %d %d", fa->nodeid, backing);
+		return backing;
+	}
+
+	case FUSE_OPENDIR | FUSE_POSTFILTER: {
+		struct fuse_open_out *foo = fa->out_args[0].value;
+
+		foo->fh = 2;
+		bpf_printk("opendir postfilter");
+		return 0;
+	}
+
+	case FUSE_READDIR | FUSE_PREFILTER: {
+		const struct fuse_read_in *fri = fa->in_args[0].value;
+		int backing = 0;
+
+		if (fri->fh == 2)
+			backing = FUSE_BPF_BACKING | FUSE_BPF_POST_FILTER;
+
+		bpf_printk("readdir %d %d", fri->fh, backing);
+		return backing;
+	}
+
+	case FUSE_READDIR | FUSE_POSTFILTER: {
+		const struct fuse_read_in *fri = fa->in_args[0].value;
+		int backing = 0;
+
+		if (fri->fh == 2)
+			backing = FUSE_BPF_USER_FILTER | FUSE_BPF_BACKING |
+				  FUSE_BPF_POST_FILTER;
+
+		bpf_printk("readdir postfilter %d %d", fri->fh, backing);
+		return backing;
+	}
+
+	case FUSE_FLUSH | FUSE_PREFILTER: {
+		const struct fuse_flush_in *ffi = fa->in_args[0].value;
+
+		bpf_printk("Flush %d", ffi->fh);
+		return FUSE_BPF_BACKING;
+	}
+
+	case FUSE_GETXATTR | FUSE_PREFILTER: {
+		const struct fuse_flush_in *ffi = fa->in_args[0].value;
+		const char *name = fa->in_args[1].value;
+
+		bpf_printk("getxattr %d %s", ffi->fh, name);
+		return FUSE_BPF_BACKING;
+	}
+
+	case FUSE_LISTXATTR | FUSE_PREFILTER: {
+		const struct fuse_flush_in *ffi = fa->in_args[0].value;
+		const char *name = fa->in_args[1].value;
+
+		bpf_printk("listxattr %d %s", ffi->fh, name);
+		return FUSE_BPF_BACKING;
+	}
+
+	case FUSE_SETXATTR | FUSE_PREFILTER: {
+		const struct fuse_flush_in *ffi = fa->in_args[0].value;
+		const char *name = fa->in_args[1].value;
+		unsigned int size = fa->in_args[2].size;
+
+		bpf_printk("setxattr %d %s %u", ffi->fh, name, size);
+		return FUSE_BPF_BACKING;
+	}
+
+	case FUSE_REMOVEXATTR | FUSE_PREFILTER: {
+		const char *name = fa->in_args[0].value;
+
+		bpf_printk("removexattr %s", name);
+		return FUSE_BPF_BACKING;
+	}
+
+	case FUSE_CANONICAL_PATH | FUSE_PREFILTER: {
+		bpf_printk("canonical_path");
+		return FUSE_BPF_BACKING;
+	}
+
+	case FUSE_STATFS | FUSE_PREFILTER: {
+		bpf_printk("statfs");
+		return FUSE_BPF_BACKING;
+	}
+
+	case FUSE_LSEEK | FUSE_PREFILTER: {
+		const struct fuse_lseek_in *fli = fa->in_args[0].value;
+
+		bpf_printk("lseek type:%d, offset:%lld", fli->whence, fli->offset);
+		return FUSE_BPF_BACKING;
+	}
+
+	default:
+		bpf_printk("Unknown opcode %d", fa->opcode);
+		return 0;
+	}
+}
+
+SEC("test_hidden")
+int trace_hidden(struct fuse_bpf_args *fa)
+{
+	switch (fa->opcode) {
+	case FUSE_LOOKUP | FUSE_PREFILTER: {
+		const char *name = fa->in_args[0].value;
+
+		bpf_printk("Lookup: %s", name);
+		if (!strcmp(name, "show"))
+			return FUSE_BPF_BACKING;
+		if (!strcmp(name, "hide"))
+			return -ENOENT;
+
+		return FUSE_BPF_BACKING;
+	}
+
+	case FUSE_ACCESS | FUSE_PREFILTER: {
+		bpf_printk("Access: %d", fa->nodeid);
+		return FUSE_BPF_BACKING;
+	}
+
+	case FUSE_CREATE | FUSE_PREFILTER:
+		bpf_printk("Create: %d", fa->nodeid);
+		return FUSE_BPF_BACKING;
+
+	case FUSE_WRITE | FUSE_PREFILTER:
+	// TODO: Clang combines similar printk calls, causing BPF to complain
+	//	bpf_printk("Write: %d", fa->nodeid);
+		return FUSE_BPF_BACKING;
+
+	case FUSE_FLUSH | FUSE_PREFILTER: {
+	//	const struct fuse_flush_in *ffi = fa->in_args[0].value;
+
+	//	bpf_printk("Flush %d", ffi->fh);
+		return FUSE_BPF_BACKING;
+	}
+
+	case FUSE_RELEASE | FUSE_PREFILTER: {
+	//	const struct fuse_release_in *fri = fa->in_args[0].value;
+
+	//	bpf_printk("Release %d", fri->fh);
+		return FUSE_BPF_BACKING;
+	}
+
+	case FUSE_FALLOCATE | FUSE_PREFILTER:
+	//	bpf_printk("fallocate %d", fa->nodeid);
+		return FUSE_BPF_BACKING;
+
+	case FUSE_CANONICAL_PATH | FUSE_PREFILTER: {
+		return FUSE_BPF_BACKING;
+	}
+	default:
+		bpf_printk("Unknown opcode: %d", fa->opcode);
+		return 0;
+	}
+}
+
+SEC("test_simple")
+int trace_simple(struct fuse_bpf_args *fa)
+{
+	if (fa->opcode & FUSE_PREFILTER)
+		bpf_printk("prefilter opcode: %d",
+			   fa->opcode & FUSE_OPCODE_FILTER);
+	else if (fa->opcode & FUSE_POSTFILTER)
+		bpf_printk("postfilter opcode: %d",
+			   fa->opcode & FUSE_OPCODE_FILTER);
+	else
+		bpf_printk("*** UNKNOWN *** opcode: %d", fa->opcode);
+	return FUSE_BPF_BACKING;
+}
+
+SEC("test_passthrough")
+int trace_daemon(struct fuse_bpf_args *fa)
+{
+	switch (fa->opcode) {
+	case FUSE_LOOKUP | FUSE_PREFILTER: {
+		const char *name = fa->in_args[0].value;
+
+		bpf_printk("Lookup prefilter: %lx %s", fa->nodeid, name);
+		return FUSE_BPF_BACKING | FUSE_BPF_POST_FILTER;
+	}
+
+	case FUSE_LOOKUP | FUSE_POSTFILTER: {
+		const char *name = fa->in_args[0].value;
+		struct fuse_entry_bpf_out *febo = fa->out_args[1].value;
+
+		bpf_printk("Lookup postfilter: %lx %s %lu", fa->nodeid, name);
+		febo->bpf_action = FUSE_ACTION_REMOVE;
+
+		return FUSE_BPF_USER_FILTER;
+	}
+
+	default:
+		if (fa->opcode & FUSE_PREFILTER)
+			bpf_printk("prefilter opcode: %d",
+				   fa->opcode & FUSE_OPCODE_FILTER);
+		else if (fa->opcode & FUSE_POSTFILTER)
+			bpf_printk("postfilter opcode: %d",
+				   fa->opcode & FUSE_OPCODE_FILTER);
+		else
+			bpf_printk("*** UNKNOWN *** opcode: %d", fa->opcode);
+		return FUSE_BPF_BACKING;
+	}
+}
+
+SEC("test_error")
+/* return FUSE_BPF_BACKING to use backing fs, 0 to pass to usermode */
+int error_test(struct fuse_bpf_args *fa)
+{
+	switch (fa->opcode) {
+	case FUSE_MKDIR | FUSE_PREFILTER: {
+		bpf_printk("mkdir");
+		return FUSE_BPF_BACKING | FUSE_BPF_POST_FILTER;
+	}
+	case FUSE_MKDIR | FUSE_POSTFILTER: {
+		bpf_printk("mkdir postfilter");
+		if (fa->error_in == -EEXIST)
+			return -EPERM;
+
+		return 0;
+	}
+
+	case FUSE_LOOKUP | FUSE_PREFILTER: {
+		const char *name = fa->in_args[0].value;
+
+		bpf_printk("lookup prefilter %s", name);
+		return FUSE_BPF_BACKING | FUSE_BPF_POST_FILTER;
+	}
+	case FUSE_LOOKUP | FUSE_POSTFILTER: {
+		const char *name = fa->in_args[0].value;
+
+		bpf_printk("lookup postfilter %s %d", name, fa->error_in);
+		if (strcmp(name, "doesnotexist") == 0/* && fa->error_in == -EEXIST*/) {
+			bpf_printk("lookup postfilter doesnotexist");
+			return FUSE_BPF_USER_FILTER;
+		}
+		bpf_printk("meh");
+		return 0;
+	}
+
+	default:
+		if (fa->opcode & FUSE_PREFILTER)
+			bpf_printk("prefilter opcode: %d",
+				   fa->opcode & FUSE_OPCODE_FILTER);
+		else if (fa->opcode & FUSE_POSTFILTER)
+			bpf_printk("postfilter opcode: %d",
+				   fa->opcode & FUSE_OPCODE_FILTER);
+		else
+			bpf_printk("*** UNKNOWN *** opcode: %d", fa->opcode);
+		return FUSE_BPF_BACKING;
+	}
+}
+
+SEC("test_readdirplus")
+int readdirplus_test(struct fuse_bpf_args *fa)
+{
+	switch (fa->opcode) {
+	case FUSE_READDIR | FUSE_PREFILTER: {
+		return 0;
+	}
+	}
+	return FUSE_BPF_BACKING;
+}
+
+SEC("test_lookup_postfilter")
+int lookuppostfilter_test(struct fuse_bpf_args *fa)
+{
+	switch (fa->opcode) {
+	case FUSE_LOOKUP | FUSE_PREFILTER:
+		return FUSE_BPF_BACKING | FUSE_BPF_POST_FILTER;
+	case FUSE_LOOKUP | FUSE_POSTFILTER:
+		return FUSE_BPF_USER_FILTER;
+	default:
+		return FUSE_BPF_BACKING;
+	}
+}
diff --git a/tools/testing/selftests/filesystems/fuse/test_framework.h b/tools/testing/selftests/filesystems/fuse/test_framework.h
new file mode 100644
index 0000000..47047c2
--- /dev/null
+++ b/tools/testing/selftests/filesystems/fuse/test_framework.h
@@ -0,0 +1,181 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Copyright (c) 2021 Google LLC
+ */
+
+#ifndef _TEST_FRAMEWORK_H
+#define _TEST_FRAMEWORK_H
+
+#include <stdbool.h>
+#include <stdio.h>
+#include <linux/compiler.h>
+
+#ifdef __ANDROID__
+static int test_case_pass;
+static int test_case_fail;
+#define ksft_print_msg			printf
+#define ksft_test_result_pass(...)	({test_case_pass++; printf(__VA_ARGS__); })
+#define ksft_test_result_fail(...)	({test_case_fail++; printf(__VA_ARGS__); })
+#define ksft_exit_fail_msg(...)		printf(__VA_ARGS__)
+#define ksft_print_header()
+#define ksft_set_plan(cnt)
+#define ksft_get_fail_cnt()		test_case_fail
+#define ksft_exit_pass()		0
+#define ksft_exit_fail()		1
+#else
+#include <kselftest.h>
+#endif
+
+#define TEST_FAILURE 1
+#define TEST_SUCCESS 0
+
+#define ptr_to_u64(p) ((__u64)p)
+
+#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
+#define le16_to_cpu(x)          (x)
+#define le32_to_cpu(x)          (x)
+#define le64_to_cpu(x)          (x)
+#else
+#error Big endian not supported!
+#endif
+
+struct _test_options {
+	int file;
+	bool verbose;
+};
+
+extern struct _test_options test_options;
+
+#define TESTCOND(condition)						\
+	do {								\
+		if (!(condition)) {					\
+			ksft_print_msg("%s failed %d\n",		\
+				       __func__, __LINE__);		\
+			goto out;					\
+		} else if (test_options.verbose)			\
+			ksft_print_msg("%s succeeded %d\n",		\
+				       __func__, __LINE__);		\
+	} while (false)
+
+#define TESTCONDERR(condition)						\
+	do {								\
+		if (!(condition)) {					\
+			ksft_print_msg("%s failed %d\n",		\
+				       __func__, __LINE__);		\
+			ksft_print_msg("Error %d (\"%s\")\n",		\
+				       errno, strerror(errno));		\
+			goto out;					\
+		} else if (test_options.verbose)			\
+			ksft_print_msg("%s succeeded %d\n",		\
+				       __func__, __LINE__);		\
+	} while (false)
+
+#define TEST(statement, condition)					\
+	do {								\
+		statement;						\
+		TESTCOND(condition);					\
+	} while (false)
+
+#define TESTERR(statement, condition)					\
+	do {								\
+		statement;						\
+		TESTCONDERR(condition);					\
+	} while (false)
+
+enum _operator {
+	_eq,
+	_ne,
+	_ge,
+};
+
+static const char * const _operator_name[] = {
+	"==",
+	"!=",
+	">=",
+};
+
+#define _TEST_OPERATOR(name, _type, format_specifier)			\
+static inline int _test_operator_##name(const char *func, int line,	\
+				_type a, _type b, enum _operator o)	\
+{									\
+	bool pass;							\
+	switch (o) {							\
+	case _eq:							\
+		pass = a == b;						\
+		break;							\
+	case _ne:							\
+		pass = a != b;						\
+		break;							\
+	case _ge:							\
+		pass = a >= b;						\
+		break;							\
+	}								\
+									\
+	if (!pass)							\
+		ksft_print_msg("Failed: %s at line %d, "		\
+			       format_specifier " %s "			\
+			       format_specifier	"\n",			\
+			       func, line, a, _operator_name[o], b);	\
+	else if (test_options.verbose)					\
+		ksft_print_msg("Passed: %s at line %d, "		\
+			       format_specifier " %s "			\
+			       format_specifier "\n",			\
+			       func, line, a, _operator_name[o], b);	\
+									\
+	return pass ? TEST_SUCCESS : TEST_FAILURE;			\
+}
+
+_TEST_OPERATOR(i, int, "%d")
+_TEST_OPERATOR(ui, unsigned int, "%u")
+_TEST_OPERATOR(lui, unsigned long, "%lu")
+_TEST_OPERATOR(ss, ssize_t, "%zd")
+_TEST_OPERATOR(vp, void *, "%px")
+_TEST_OPERATOR(cp, char *, "%px")
+
+#define _CALL_TO(_type, name, a, b, o)					\
+	_test_operator_##name(__func__, __LINE__,			\
+				  (_type) (long long) (a),		\
+				  (_type) (long long) (b), o)
+
+#define TESTOPERATOR(a, b, o)						\
+	do {								\
+		if (_Generic((a),					\
+			int : _CALL_TO(int, i, a, b, o),		\
+			unsigned int : _CALL_TO(unsigned int, ui, a, b, o),	\
+			unsigned long : _CALL_TO(unsigned long, lui, a, b, o),	\
+			ssize_t : _CALL_TO(ssize_t, ss, a, b, o),		\
+			void * : _CALL_TO(void *, vp, a, b, o),		\
+			char * : _CALL_TO(char *, cp, a, b, o)		\
+		))							\
+			goto out;					\
+	} while (false)
+
+#define TESTEQUAL(a, b) TESTOPERATOR(a, b, _eq)
+#define TESTNE(a, b) TESTOPERATOR(a, b, _ne)
+#define TESTGE(a, b) TESTOPERATOR(a, b, _ge)
+
+/* For testing a syscall that returns 0 on success and sets errno otherwise */
+#define TESTSYSCALL(statement) TESTCONDERR((statement) == 0)
+
+#define ARRAY_SIZE(arr) (sizeof(arr) / sizeof(arr[0]))
+
+static inline void print_bytes(const void *data, size_t size)
+{
+	const char *bytes = data;
+	int i;
+
+	for (i = 0; i < size; ++i) {
+		if (i % 0x10 == 0)
+			printf("%08x:", i);
+		printf("%02x ", (unsigned int) (unsigned char) bytes[i]);
+		if (i % 0x10 == 0x0f)
+			printf("\n");
+	}
+
+	if (i % 0x10 != 0)
+		printf("\n");
+}
+
+
+
+#endif
diff --git a/tools/testing/selftests/filesystems/fuse/test_fuse.h b/tools/testing/selftests/filesystems/fuse/test_fuse.h
new file mode 100644
index 0000000..69dadc9
--- /dev/null
+++ b/tools/testing/selftests/filesystems/fuse/test_fuse.h
@@ -0,0 +1,337 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Copyright (c) 2021 Google LLC
+ */
+
+#ifndef TEST_FUSE__H
+#define TEST_FUSE__H
+
+#define _GNU_SOURCE
+
+#include "test_framework.h"
+
+#include <dirent.h>
+#include <sys/stat.h>
+#include <sys/statfs.h>
+#include <sys/types.h>
+
+#include <include/uapi/linux/android_fuse.h>
+#include <include/uapi/linux/fuse.h>
+
+#define PAGE_SIZE 4096
+#define FUSE_POSTFILTER 0x20000
+
+extern struct _test_options test_options;
+
+/* Slow but semantically easy string functions */
+
+/*
+ * struct s just wraps a char pointer
+ * It is a pointer to a malloc'd string, or null
+ * All consumers handle null input correctly
+ * All consumers free the string
+ */
+struct s {
+	char *s;
+};
+
+struct s s(const char *s1);
+struct s sn(const char *s1, const char *s2);
+int s_cmp(struct s s1, struct s s2);
+struct s s_cat(struct s s1, struct s s2);
+struct s s_splitleft(struct s s1, char c);
+struct s s_splitright(struct s s1, char c);
+struct s s_word(struct s s1, char c, size_t n);
+struct s s_path(struct s s1, struct s s2);
+struct s s_pathn(size_t n, struct s s1, ...);
+int s_link(struct s src_pathname, struct s dst_pathname);
+int s_symlink(struct s src_pathname, struct s dst_pathname);
+int s_mkdir(struct s pathname, mode_t mode);
+int s_rmdir(struct s pathname);
+int s_unlink(struct s pathname);
+int s_open(struct s pathname, int flags, ...);
+int s_openat(int dirfd, struct s pathname, int flags, ...);
+int s_creat(struct s pathname, mode_t mode);
+int s_mkfifo(struct s pathname, mode_t mode);
+int s_stat(struct s pathname, struct stat *st);
+int s_statfs(struct s pathname, struct statfs *st);
+int s_fuse_attr(struct s pathname, struct fuse_attr *fuse_attr_out);
+DIR *s_opendir(struct s pathname);
+int s_getxattr(struct s pathname, const char name[], void *value, size_t size,
+	       ssize_t *ret_size);
+int s_listxattr(struct s pathname, void *list, size_t size, ssize_t *ret_size);
+int s_setxattr(struct s pathname, const char name[], const void *value,
+	       size_t size, int flags);
+int s_removexattr(struct s pathname, const char name[]);
+int s_rename(struct s oldpathname, struct s newpathname);
+
+struct s tracing_folder(void);
+int tracing_on(void);
+
+char *concat_file_name(const char *dir, const char *file);
+char *setup_mount_dir(const char *name);
+int delete_dir_tree(const char *dir_path, bool remove_root);
+
+#define TESTFUSEINNULL(_opcode)						\
+	do {								\
+		struct fuse_in_header *in_header =			\
+				(struct fuse_in_header *)bytes_in;	\
+		ssize_t res = read(fuse_dev, &bytes_in,			\
+			sizeof(bytes_in));				\
+									\
+		TESTEQUAL(in_header->opcode, _opcode);			\
+		TESTEQUAL(res, sizeof(*in_header));			\
+	} while (false)
+
+#define TESTFUSEIN(_opcode, in_struct)					\
+	do {								\
+		struct fuse_in_header *in_header =			\
+				(struct fuse_in_header *)bytes_in;	\
+		ssize_t res = read(fuse_dev, &bytes_in,			\
+			sizeof(bytes_in));				\
+									\
+		TESTEQUAL(in_header->opcode, _opcode);			\
+		TESTEQUAL(res, sizeof(*in_header) + sizeof(*in_struct));\
+	} while (false)
+
+#define TESTFUSEIN2(_opcode, in_struct1, in_struct2)			\
+	do {								\
+		struct fuse_in_header *in_header =			\
+				(struct fuse_in_header *)bytes_in;	\
+		ssize_t res = read(fuse_dev, &bytes_in,			\
+			sizeof(bytes_in));				\
+									\
+		TESTEQUAL(in_header->opcode, _opcode);			\
+		TESTEQUAL(res, sizeof(*in_header) + sizeof(*in_struct1) \
+						+ sizeof(*in_struct2)); \
+		in_struct1 = (void *)(bytes_in + sizeof(*in_header));	\
+		in_struct2 = (void *)(bytes_in + sizeof(*in_header)	\
+				      + sizeof(*in_struct1));		\
+	} while (false)
+
+#define TESTFUSEINEXT(_opcode, in_struct, extra)			\
+	do {								\
+		struct fuse_in_header *in_header =			\
+				(struct fuse_in_header *)bytes_in;	\
+		ssize_t res = read(fuse_dev, &bytes_in,			\
+			sizeof(bytes_in));				\
+									\
+		TESTEQUAL(in_header->opcode, _opcode);			\
+		TESTEQUAL(res,						\
+		       sizeof(*in_header) + sizeof(*in_struct) + extra);\
+	} while (false)
+
+#define TESTFUSEINUNKNOWN()						\
+	do {								\
+		struct fuse_in_header *in_header =			\
+				(struct fuse_in_header *)bytes_in;	\
+		ssize_t res = read(fuse_dev, &bytes_in,			\
+			sizeof(bytes_in));				\
+									\
+		TESTGE(res, sizeof(*in_header));			\
+		TESTEQUAL(in_header->opcode, -1);			\
+	} while (false)
+
+/* Special case lookup since it is asymmetric */
+#define TESTFUSELOOKUP(expected, filter)				\
+	do {								\
+		struct fuse_in_header *in_header =			\
+				(struct fuse_in_header *)bytes_in;	\
+		char *name = (char *) (bytes_in + sizeof(*in_header));	\
+		ssize_t res;						\
+									\
+		TEST(res = read(fuse_dev, &bytes_in, sizeof(bytes_in)),	\
+			  res != -1);					\
+		/* TODO once we handle forgets properly, remove */	\
+		if (in_header->opcode == FUSE_FORGET)			\
+			continue;					\
+		if (in_header->opcode == FUSE_BATCH_FORGET)		\
+			continue;					\
+		TESTGE(res, sizeof(*in_header));			\
+		TESTEQUAL(in_header->opcode,				\
+			FUSE_LOOKUP | filter);				\
+		TESTEQUAL(res,						\
+			  sizeof(*in_header) + strlen(expected) + 1 +	\
+				(filter == FUSE_POSTFILTER ?		\
+				sizeof(struct fuse_entry_out) +		\
+				sizeof(struct fuse_entry_bpf_out) : 0));\
+		TESTCOND(!strcmp(name, expected));			\
+		break;							\
+	} while (true)
+
+#define TESTFUSEOUTEMPTY()						\
+	do {								\
+		struct fuse_in_header *in_header =			\
+				(struct fuse_in_header *)bytes_in;	\
+		struct fuse_out_header *out_header =			\
+			(struct fuse_out_header *)bytes_out;		\
+									\
+		*out_header = (struct fuse_out_header) {		\
+			.len = sizeof(*out_header),			\
+			.unique = in_header->unique,			\
+		};							\
+		TESTEQUAL(write(fuse_dev, bytes_out, out_header->len),	\
+			  out_header->len);				\
+	} while (false)
+
+#define TESTFUSEOUTERROR(errno)						\
+	do {								\
+		struct fuse_in_header *in_header =			\
+				(struct fuse_in_header *)bytes_in;	\
+		struct fuse_out_header *out_header =			\
+			(struct fuse_out_header *)bytes_out;		\
+									\
+		*out_header = (struct fuse_out_header) {		\
+			.len = sizeof(*out_header),			\
+			.error = errno,					\
+			.unique = in_header->unique,			\
+		};							\
+		TESTEQUAL(write(fuse_dev, bytes_out, out_header->len),	\
+			  out_header->len);				\
+	} while (false)
+
+#define TESTFUSEOUTREAD(data, length)					\
+	do {								\
+		struct fuse_in_header *in_header =			\
+				(struct fuse_in_header *)bytes_in;	\
+		struct fuse_out_header *out_header =			\
+			(struct fuse_out_header *)bytes_out;		\
+									\
+		*out_header = (struct fuse_out_header) {		\
+			.len = sizeof(*out_header) + length,		\
+			.unique = in_header->unique,			\
+		};							\
+		memcpy(bytes_out + sizeof(*out_header), data, length);	\
+		TESTEQUAL(write(fuse_dev, bytes_out, out_header->len),	\
+			  out_header->len);				\
+	} while (false)
+
+#define TESTFUSEDIROUTREAD(read_out, data, length)			\
+	do {								\
+		struct fuse_in_header *in_header =			\
+				(struct fuse_in_header *)bytes_in;	\
+		struct fuse_out_header *out_header =			\
+			(struct fuse_out_header *)bytes_out;		\
+									\
+		*out_header = (struct fuse_out_header) {		\
+			.len = sizeof(*out_header) +			\
+			       sizeof(*read_out) + length,		\
+			.unique = in_header->unique,			\
+		};							\
+		memcpy(bytes_out + sizeof(*out_header) +		\
+				sizeof(*read_out), data, length);	\
+		memcpy(bytes_out + sizeof(*out_header),			\
+				read_out, sizeof(*read_out));		\
+		TESTEQUAL(write(fuse_dev, bytes_out, out_header->len),	\
+			  out_header->len);				\
+	} while (false)
+
+#define TESTFUSEOUT1(type1, obj1)					\
+	do {								\
+		*(struct fuse_out_header *) bytes_out			\
+			= (struct fuse_out_header) {			\
+			.len = sizeof(struct fuse_out_header)		\
+				+ sizeof(struct type1),			\
+			.unique = ((struct fuse_in_header *)		\
+				   bytes_in)->unique,			\
+		};							\
+		*(struct type1 *) (bytes_out				\
+			+ sizeof(struct fuse_out_header))		\
+			= obj1;						\
+		TESTEQUAL(write(fuse_dev, bytes_out,			\
+			((struct fuse_out_header *)bytes_out)->len),	\
+			((struct fuse_out_header *)bytes_out)->len);	\
+	} while (false)
+
+#define TESTFUSEOUT2(type1, obj1, type2, obj2)				\
+	do {								\
+		*(struct fuse_out_header *) bytes_out			\
+			= (struct fuse_out_header) {			\
+			.len = sizeof(struct fuse_out_header)		\
+				+ sizeof(struct type1)			\
+				+ sizeof(struct type2),			\
+			.unique = ((struct fuse_in_header *)		\
+				   bytes_in)->unique,			\
+		};							\
+		*(struct type1 *) (bytes_out				\
+			+ sizeof(struct fuse_out_header))		\
+			= obj1;						\
+		*(struct type2 *) (bytes_out				\
+			+ sizeof(struct fuse_out_header)		\
+			+ sizeof(struct type1))				\
+			= obj2;						\
+		TESTEQUAL(write(fuse_dev, bytes_out,			\
+			((struct fuse_out_header *)bytes_out)->len),	\
+			((struct fuse_out_header *)bytes_out)->len);	\
+	} while (false)
+
+#define TESTFUSEINITFLAGS(fuse_connection_flags)			\
+	do {								\
+		DECL_FUSE_IN(init);					\
+									\
+		TESTFUSEIN(FUSE_INIT, init_in);				\
+		TESTEQUAL(init_in->major, FUSE_KERNEL_VERSION);		\
+		TESTEQUAL(init_in->minor, FUSE_KERNEL_MINOR_VERSION);	\
+		TESTFUSEOUT1(fuse_init_out, ((struct fuse_init_out) {	\
+			.major = FUSE_KERNEL_VERSION,			\
+			.minor = FUSE_KERNEL_MINOR_VERSION,		\
+			.max_readahead = 4096,				\
+			.flags = fuse_connection_flags,			\
+			.max_background = 0,				\
+			.congestion_threshold = 0,			\
+			.max_write = 4096,				\
+			.time_gran = 1000,				\
+			.max_pages = 12,				\
+			.map_alignment = 4096,				\
+		}));							\
+	} while (false)
+
+#define TESTFUSEINIT()							\
+	TESTFUSEINITFLAGS(0)
+
+#define DECL_FUSE_IN(name)						\
+	struct fuse_##name##_in *name##_in =				\
+		(struct fuse_##name##_in *)				\
+		(bytes_in + sizeof(struct fuse_in_header))
+
+#define DECL_FUSE(name)							\
+	struct fuse_##name##_in *name##_in __maybe_unused;		\
+	struct fuse_##name##_out *name##_out __maybe_unused
+
+#define FUSE_DECLARE_DAEMON						\
+	int daemon = -1;						\
+	int status;							\
+	bool action;							\
+	uint8_t bytes_in[FUSE_MIN_READ_BUFFER] __maybe_unused;		\
+	uint8_t bytes_out[FUSE_MIN_READ_BUFFER]	__maybe_unused
+
+#define FUSE_START_DAEMON()						\
+	do {								\
+		TEST(daemon = fork(), daemon != -1);			\
+		action = daemon != 0;					\
+	} while (false)
+
+#define FUSE_END_DAEMON()						\
+	do {								\
+		TESTEQUAL(waitpid(daemon, &status, 0), daemon);		\
+		TESTEQUAL(status, TEST_SUCCESS);			\
+		result = TEST_SUCCESS;					\
+out:									\
+		if (!daemon)						\
+			exit(TEST_FAILURE);				\
+	} while (false)
+
+
+struct map_relocation {
+	char *name;
+	int fd;
+	int value;
+};
+
+int mount_fuse(const char *mount_dir, int bpf_fd, int dir_fd,
+	       int *fuse_dev_ptr);
+int mount_fuse_no_init(const char *mount_dir, int bpf_fd, int dir_fd,
+	       int *fuse_dev_ptr);
+int install_elf_bpf(const char *file, const char *section, int *fd,
+		    struct map_relocation **map_relocations, size_t *map_count);
+#endif
diff --git a/tools/testing/selftests/filesystems/fuse/test_fuse_bpf.h b/tools/testing/selftests/filesystems/fuse/test_fuse_bpf.h
new file mode 100644
index 0000000..9097626
--- /dev/null
+++ b/tools/testing/selftests/filesystems/fuse/test_fuse_bpf.h
@@ -0,0 +1,65 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Copyright (c) 2022 Google LLC
+ */
+
+#ifndef TEST_FUSE__BPF__H
+#define TEST_FUSE__BPF__H
+
+#define __EXPORTED_HEADERS__
+#define __KERNEL__
+
+#ifdef __ANDROID__
+#include <stdint.h>
+#endif
+
+#include <uapi/linux/types.h>
+#include <uapi/linux/bpf.h>
+#include <uapi/linux/android_fuse.h>
+#include <uapi/linux/fuse.h>
+#include <uapi/linux/errno.h>
+
+#define SEC(NAME) __section(NAME)
+
+struct fuse_bpf_map {
+	int map_type;
+	size_t key_size;
+	size_t value_size;
+	int max_entries;
+};
+
+static void *(*bpf_map_lookup_elem)(struct fuse_bpf_map *map, void *key)
+	= (void *) 1;
+
+static void *(*bpf_map_update_elem)(struct fuse_bpf_map *map, void *key,
+				    void *value, int flags)
+	= (void *) 2;
+
+static long (*bpf_trace_printk)(const char *fmt, __u32 fmt_size, ...)
+	= (void *) 6;
+
+static long (*bpf_get_current_pid_tgid)()
+	= (void *) 14;
+
+static long (*bpf_get_current_uid_gid)()
+	= (void *) 15;
+
+#define bpf_printk(fmt, ...)					\
+	({			                                \
+		char ____fmt[] = fmt;                           \
+		bpf_trace_printk(____fmt, sizeof(____fmt),      \
+					##__VA_ARGS__);		\
+	})
+
+SEC("dummy") inline int strcmp(const char *a, const char *b)
+{
+	int i;
+
+	for (i = 0; i < __builtin_strlen(b) + 1; ++i)
+		if (a[i] != b[i])
+			return -1;
+
+	return 0;
+}
+
+#endif